Hi Chris,

No objections about this approach. Good division of the work. I will
provide the mapping of Kafka version and the specified feature later.

Vino yang
Thanks.

2018-03-13 20:11 GMT+08:00 Christofer Dutz <christofer.d...@c-ware.de>:

> Well I have implemented something like the Version checking before, so I
> would opt to take care of that.
>
> I would define an Annotation with an optional "from" and "to" version ...
> you could use that
> I would need something that provides the version of the server from your
> side.
>
> With this I would then implement an Aspect that intercepts these calls,
> does the check and eventually throws Exceptions with a message what the
> minimum or maximum version for a feature would be.
>
> I would use a compile-time weaver as this does not add any more
> dependencies or setup complexity to the construct.
>
> Any objections to this approach?
>
> Chris
>
>
> Am 13.03.18, 03:06 schrieb "vino yang" <yanghua1...@gmail.com>:
>
>     Hi Chris,
>
>     It looks like a good idea. I think to finish this job, we can split it
> into
>     three sub tasks:
>
>        - upgrade kafka version to 1.x and test it to match the 0.8.x
>        connector's function and behaivor;
>        - Carding and defining the annotation which contains different kafka
>        version and features
>        - expose the new feature's API to user and check with annotation
>
>     What's your opinion?
>
>
>     2018-03-12 21:00 GMT+08:00 Christofer Dutz <christofer.d...@c-ware.de
> >:
>
>     > Don't know if this would be an option:
>     >
>     > If we defined and used a Java annotation which defines what
> Kafka-Version
>     > a feature is available from (or up to which version it is supported)
> and
>     > then we could do quick checks that compare the current version with
> the
>     > annotations on the methods we call. I think this type of check
> should be
>     > quite easy to understand and we wouldn't have to build, maintain,
> test,
>     > document etc. loads of separate modules.
>     >
>     > Chris
>     >
>     >
>     >
>     > Am 12.03.18, 13:30 schrieb "vino yang" <yanghua1...@gmail.com>:
>     >
>     >     Hi Chris,
>     >
>     >     OK, Hope for listening someone's opinion.
>     >
>     >     Vino yang.
>     >
>     >     2018-03-12 20:23 GMT+08:00 Christofer Dutz <
> christofer.d...@c-ware.de
>     > >:
>     >
>     >     > Hi Vino,
>     >     >
>     >     > please don't interpret my opinion as some official project
> decision.
>     >     > For discussions like this I would definitely prefer to hear the
>     > opinions
>     >     > of others in the project.
>     >     > Perhaps having a new client API and having compatibility layers
>     > inside the
>     >     > connector would be another option.
>     >     > So per default the compatibility level of the Kafka client lib
> would
>     > be
>     >     > used but a developer could explicitly choose
>     >     > older compatibility levels, where we have taken care of the
> work to
>     > decide
>     >     > what works and what doesn't.
>     >     >
>     >     > Chris
>     >     >
>     >     >
>     >     >
>     >     > Am 12.03.18, 13:07 schrieb "vino yang" <yanghua1...@gmail.com
> >:
>     >     >
>     >     >     Hi Chris,
>     >     >
>     >     >     In some ways, I argee with you. Though kafka API has the
>     >     > compatibility. But
>     >     >
>     >     >
>     >     >        - old API + higher server version : this mode would
> miss some
>     > key
>     >     > new
>     >     >        feature.
>     >     >        - new API + older server version : this mode, users are
> in a
>     > puzzle
>     >     >        about which feature they could use and which could not.
> Also,
>     > new
>     >     > API will
>     >     >        do more logic judgement and something else (which cause
>     > performance
>     >     > cost)
>     >     >        for backward compatibility.
>     >     >
>     >     >     I think it's the main reason that other framework split
>     > different kafka
>     >     >     connector with versions.
>     >     >
>     >     >     Anyway, I will respect your decision. Can I claim this
> task about
>     >     > upgrading
>     >     >     the kafka client's version to 1.x?
>     >     >
>     >     >
>     >     >     2018-03-12 16:30 GMT+08:00 Christofer Dutz <
>     > christofer.d...@c-ware.de
>     >     > >:
>     >     >
>     >     >     > Hi Vino,
>     >     >     >
>     >     >     > I would rather go a different path. I talked to some
> Kafka
>     > pros and
>     >     > they
>     >     >     > sort of confirmed my gut-feeling.
>     >     >     > The greatest changes to Kafka have been in the layers
> behind
>     > the API
>     >     >     > itself. The API seems to have been designed with backward
>     >     > compatibility in
>     >     >     > mind.
>     >     >     > That means you can generally use a newer API with an
> older
>     > broker as
>     >     > well
>     >     >     > as use a new broker with an older API (This is probably
> even
>     > the
>     >     > safer way
>     >     >     > around). As soon as you try to do something with the API
> which
>     > your
>     >     > broker
>     >     >     > doesn't support, you get error messages.
>     >     >     >
>     >     >     > https://cwiki.apache.org/confluence/display/KAFKA/
>     >     > Compatibility+Matrix
>     >     >     >
>     >     >     > I would rather update the existing connector to a newer
> Kafka
>     >     > version ...
>     >     >     > 0.8.2.2 is quite old and we should update to a version
> of at
>     > least
>     >     > 0.10.0
>     >     >     > (I would prefer a 1.x) and stick with that. I doubt many
> will
>     > be
>     >     > using an
>     >     >     > ancient 0.8.2 version (09.09.2015). And everything
> starting
>     > with
>     >     > 0.10.x
>     >     >     > should be interchangeable.
>     >     >     >
>     >     >     > I wouldn't like to have yet another project maintaining
> a Zoo
>     > of
>     >     > adapters
>     >     >     > for Kafka.
>     >     >     >
>     >     >     > Eventually a Kafka-Streams client would make sense
> though ...
>     > to
>     >     > sort of
>     >     >     > extend the Edgent streams from the edge to the Kafka
> cluster.
>     >     >     >
>     >     >     > Chris
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     > Am 12.03.18, 03:41 schrieb "vino yang" <
> yanghua1...@gmail.com
>     > >:
>     >     >     >
>     >     >     >     Hi guys,
>     >     >     >
>     >     >     >     How about this idea, I think we should support
> kafka's new
>     >     > client API.
>     >     >     >
>     >     >     >     2018-03-04 15:10 GMT+08:00 vino yang <
>     > yanghua1...@gmail.com>:
>     >     >     >
>     >     >     >     > The reason is that Kafka 0.9+ provided a new
> consumer API
>     >     > which has
>     >     >     > more
>     >     >     >     > features and better performance.
>     >     >     >     >
>     >     >     >     > Just like Flink's implementation :
>     > https://github.com/apache/
>     >     >     >     > flink/tree/master/flink-connectors.
>     >     >     >     >
>     >     >     >     > vinoyang
>     >     >     >     > Thanks.
>     >     >     >     >
>     >     >     >     >
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >
>     >     >
>     >     >
>     >
>     >
>     >
>
>
>

Reply via email to