Gantigmaa, thanks for the changes, they look good to me in general, I
have some UX questions.

The KIP mentions the following:
> Also if there is no rack information for any of the nodes, the RACK column 
> will be omitted from the output.

What will the tool output for nodes that don't have a rack when other
nodes contain rack information?

I think that we should always output the RACK column even if all of
the nodes do not contain rack information. This would make it easier
for Kafka operators that develop scripts which use and parse CLI
outputs. What do you think?

> I think we can change the command to "list-nodes" and
output either controller nodes or broker nodes depending on the bootstrap
argument.

Sounds good to me. Should we also add a ROLES column to the output
where the possible values are "broker" and "controller"?
--bootstrap-server will always set that column to "broker" while
--bootstrap-controller will always set that column to "controller".
This would reinforce to users that are less familiar with the
implementation of the role of the returned endpoints.

While thinking about the comment above, I realized that something
important to note is that this RPC and command return the node
_endpoints_ and not necessarily the nodes. For example, what happens
if some of the brokers (1 and 2) have the advertised listeners (A, B
and C) and some of the brokers (3 and 4) have the advertised listeners
(A, B) yet the user uses a bootstrap server endpoint that maps to the
listener C? The current implementation would only return brokers 1 and
2 since those are the only brokers that have listener C.

Are you planning to keep this implementation? I think we have to, to
keep it compatible with the previous implementation. If so, maybe we
can make this clearer by calling the command "list-endpoints" instead
of "list-nodes". What do you think?

Thanks
-- 
-José

Reply via email to