Hi Rajini,

Thanks for clarifying. Comments inline.

On Tue, Mar 1, 2016 at 2:21 PM, Rajini Sivaram <rajinisiva...@googlemail.com
> wrote:
>
> Since we want to support arbitrary custom mechanisms, it feels better to
> use mechanism names rather than Strings. IDs would require ensuring that
> client and server have the same mapping. Since the mechanism name Strings
> are not particularly long and they are useful for debugging, I feel it is
> worthwhile to retain Strings rather than IDs.
>

Fair enough.

I wasn't sure whether Kafka attempted to retain compatibility in both
> directions. I would have preferred to send the mechanism even for GSSAPI to
> keep the code consistent, but went for version compatibility instead. I was
> thinking mainly of replication. If you have a cluster that uses 0.9.0.x
> with SASL replication, it would be easier to upgrade if new clients worked
> with old brokers.
>

That makes sense. We could use inter.broker.protocol.version for the
replication case, but `SaslClientAuthenticator` is shared between clients
and the broker and the way you did is probably simpler. However, the other
side of the coin is how we document the protocol for clients that are
distributed separately from Kafka itself. It would be good to make it clear
in such documentation that one can pass the mechanism even for the GSSAPI
case from 0.10.0.0 onwards.

Ismael

Reply via email to