>
>
>    In case of connection closures, the KIP recommends that clients should
>    use some other method of determining the apiRequest version to use,
> like,
>    probing. For instance, client will send V0 version of apiVersion request
>    and will try higher versions incrementally. In case b, client will
>    eventually get apiVersion response and know what api versions it should
>    use. For case a and c, client will eventually give up and propagate an
>    error to application.
>
>
I strongly disagree that we should recommend this probing method.
Probing is essentially what clients do now (since we lack any way to
communicate versions), and is what we are trying to solve with this KIP.
Considering that different brokers could have different versions, and that
brokers can change version at any point, this sounds slow, difficult to
implement and fragile.

Also note that even with this method, without VersionRequest v0, we will
break clients in the one way Kafka currently promises to never break: Old
clients won't be able to work with new brokers.

If this is part of KIP-35, I am against it.

Since all Request/Responses in our protocol have versions, publishing
versions for each request/response should be something we can easily
support into the future. It sounds far easier than asking every single
client to implement the method you specified above.

Gwen

Reply via email to