Sounds fair. I am OK with putting down, permanent support of ApiVersion api
versions, as a limitation in KIP.

On Tue, Apr 5, 2016 at 9:23 AM, Ewen Cheslack-Postava <e...@confluent.io>
wrote:

> On Mon, Apr 4, 2016 at 11:24 AM, Gwen Shapira <g...@confluent.io> wrote:
>
> > >
> > >
> > >    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,
>
> Agreed, and I think it would be fine to make permanent support (barring
> massive changes to the protocol) part of the KIP text. There's really no
> reason not to and it basically just turns this into the basis for a pretty
> simple handshake protocol.
>
> (I'm tempted to not even bring this up given that we're converging, but one
> reason I could see this being changed in the future is that protocol
> support is only conveyed in one direction. This could also be turned into a
> slightly more general handshake approach where the client also advertises
> what it supports. However, given the way request/response versioning works,
> I can't think of a reason we'd need this atm.)
>
> -Ewen
>
>
> >
> > Gwen
> >
>
>
>
> --
> Thanks,
> Ewen
>



-- 

Regards,
Ashish

Reply via email to