Hi Harsha,

Comments inline.

On Fri, Apr 12, 2019 at 8:22 PM Harsha <ka...@harsha.io> wrote:

> Hi Ismael,
>             I meant to say blocking clients based on their API version
> https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/api/ApiVersion.scala#L48
> But If I understand what you are saying, since each client release can
> support different versions for each of fetch, produce, offset commit etc..
> and it's harder to block just based on single min.api.version setting
> across different clients.
>

That's what I mean, yes.


> The idea I had in my mind was to do this via ApiVersionRequest, when a
> client makes api request to broker in response we return min and max
> version supported for each Api. When min.api.version enabled on broker, it
> returns the maxVersion it supports for each of the requests in that release
> as min versions to the clients.
>

Yes, my concern is not the implementation, that's straightforward, it's how
it's meant to be used.

Irrespective of the above approach I understand your point still stands
> which is sarama might not choose to implement all the higher version
> protocols for Kafka 1.1 release and they might introduce higher version of
> produce request in a subsequent minor release and it will be harder for
> users to figure out which release of sarama client they can use.
>

Yes, that's exactly right. The current KIP is not treating the Kafka
protocol as a specification that is implemented by multiple clients in
multiple languages. During KIP-35, it was agreed that the protocol would
not be tied to a particular Kafka version. The current KIP proposal doesn't
take that into account.

I looked at the latest updates and I don't think the core issue is
addressed:

https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=103091409&selectedPageVersions=15&selectedPageVersions=13

It would be useful to hear feedback from other people.

Ismael

Reply via email to