Do we all agree that we can drop Kafka 0.9/0.10 support after next LTS release (is it already known which one will be the next?) or we need to vote for this?
> On 4 Apr 2019, at 16:49, Alexey Romanenko <aromanenko....@gmail.com> wrote: > > +1 for that too. > >> On 4 Apr 2019, at 01:53, Raghu Angadi <ang...@gmail.com >> <mailto:ang...@gmail.com>> wrote: >> >> I mean, +1 for removing support for old Kafka versions after next LTS >> >> What the cut off should be for 'old' version is can be discussed then. My >> choice would be 0.11. >> Raghu. >> >> On Wed, Apr 3, 2019 at 4:36 PM Raghu Angadi <ang...@gmail.com >> <mailto:ang...@gmail.com>> wrote: >> +1 for next LTS. >> >> On Wed, Apr 3, 2019 at 2:30 PM Ismaël Mejía <ieme...@gmail.com >> <mailto:ieme...@gmail.com>> wrote: >> We should focus on the main reason to remove the Kafka 0.9 support. I >> have the impression that this is mostly to ease the maintenance, but >> from the current status (and the removal PR [1]), it does not seem >> like it is a burden to continue supporting 0.9. In any case I am +1 to >> remove the support for 0.9, but maybe it is a good idea to just wait >> until the next LTS is decided and do it just after. This way we will >> still cover existing users for some time. >> >> Creating different modules for different versions of KafkaIO does not >> make sense because it is even more complicated than just staying the >> way we are today for not much in return. We better improve the status >> quo by parametrizing our current tests to validate that KafkaIO works >> correctly with the different supported versions (so far we only test >> against version 1.0.0). I filled BEAM-7003 to track this. >> >> [1] https://github.com/apache/beam/pull/8186 >> <https://github.com/apache/beam/pull/8186> >> [2] https://issues.apache.org/jira/browse/BEAM-7003 >> <https://issues.apache.org/jira/browse/BEAM-7003> >> >> ps. Actually this discussion brings to the table the issue of >> removing/deprecated/changing supported versions on parts of the API >> marked as @Experimental. I will fork a new thread to discuss this. >> >> On Wed, Apr 3, 2019 at 6:53 PM Raghu Angadi <ang...@gmail.com >> <mailto:ang...@gmail.com>> wrote: >> > >> > >> > >> > On Wed, Apr 3, 2019 at 5:46 AM David Morávek <david.mora...@gmail.com >> > <mailto:david.mora...@gmail.com>> wrote: >> >> >> >> I'd say that APIs we use in KafkaIO are pretty much stable since 0.10 >> >> release, all reflection based compatibility adapters seem to be aimed for >> >> 0.9 release (which is 8 major releases behind current Kafka release). >> >> >> >> We may take an inspiration from Flink's kafka connector, they maintain >> >> separate maven artifact for all supported Kafka APIs. This may be the >> >> best approach as we can still share most of the codebase between >> >> versions, have compile time checks and also run tests against all of the >> >> supported versions. >> > >> > >> > From that page, Flink also moved to single Kafka connector for versions >> > 10.x and newer. Kafka itself seems to have improved compatibility between >> > client and broker versions starting 0.11. Not sure if there is any need >> > now to make multiple versions of KafkaIO versions for 0.9.x etc. Are you >> > suggesting we should? >> > >> > From Flink's page: >> > "Starting with Flink 1.7, there is a new universal Kafka connector that >> > does not track a specific Kafka major version. Rather, it tracks the >> > latest version of Kafka at the time of the Flink release. >> > >> > If your Kafka broker version is 1.0.0 or newer, you should use this Kafka >> > connector. If you use an older version of Kafka (0.11, 0.10, 0.9, or 0.8), >> > you should use the connector corresponding to the broker version." >> > >> > >> >> >> >> >> >> I'm not really comfortable with reflection based adapters as they seem >> >> fragile and don't provide compile time checks. >> >> >> >> On Tue, Apr 2, 2019 at 11:27 PM Austin Bennett >> >> <whatwouldausti...@gmail.com <mailto:whatwouldausti...@gmail.com>> wrote: >> >>> >> >>> I withdraw my concern -- checked on info on the cluster I will >> >>> eventually access. It is on 0.8, so I was speaking too soon. Can't >> >>> speak to rest of user base. >> >>> >> >>> On Tue, Apr 2, 2019 at 11:03 AM Raghu Angadi <ang...@gmail.com >> >>> <mailto:ang...@gmail.com>> wrote: >> >>>> >> >>>> Thanks to David Morávek for pointing out possible improvement to >> >>>> KafkaIO for dropping support for 0.9 since it avoids having a second >> >>>> consumer just to fetch latest offsets for backlog. >> >>>> >> >>>> Ideally we should be dropping 0.9 support for next major release, in >> >>>> fact better to drop versions before 0.10.1 at the same time. This would >> >>>> further reduce reflection based calls for supporting multiple versions. >> >>>> If the users still on 0.9 could stay on current stable release of Beam, >> >>>> dropping would not affect them. Otherwise, it would be good to hear >> >>>> from them about how long we need to keep support for old versions. >> >>>> >> >>>> I don't think it is good idea to have multiple forks of KafkaIO in the >> >>>> same repo. If we do go that route, we should fork the entire kafka >> >>>> directory and rename the main class KafkaIO_Unmaintained :). >> >>>> >> >>>> IMHO, so far, additional complexity for supporting these versions is >> >>>> not that bad. Most of it is isolated to ConsumerSpEL.java & >> >>>> ProducerSpEL.java. >> >>>> My first preference is dropping support for deprecated versions (and a >> >>>> deprecate a few more versions, may be till the version that added >> >>>> transactions around 0.11.x I think). >> >>>> >> >>>> I haven't looked into what's new in Kafka 2.x. Are there any features >> >>>> that KafkaIO should take advantage of? I have not noticed our existing >> >>>> code breaking. We should certainly certainly support latest releases of >> >>>> Kafka. >> >>>> >> >>>> Raghu. >> >>>> >> >>>> On Tue, Apr 2, 2019 at 10:27 AM Mingmin Xu <mingm...@gmail.com >> >>>> <mailto:mingm...@gmail.com>> wrote: >> >>>>> >> >>>>> >> >>>>> We're still using Kafka 0.10 a lot, similar as 0.9 IMO. To expand >> >>>>> multiple versions in KafkaIO is quite complex now, and it confuses >> >>>>> users which is supported / which is not. I would prefer to support >> >>>>> Kafka 2.0+ only in the latest version. For old versions, there're some >> >>>>> options: >> >>>>> 1). document Kafka-Beam support versions, like what we do in >> >>>>> FlinkRunner; >> >>>>> 2). maintain separated KafkaIOs for old versions; >> >>>>> >> >>>>> 1) would be easy to maintain, and I assume there should be no issue to >> >>>>> use Beam-Core 3.0 together with KafkaIO 2.0. >> >>>>> >> >>>>> Any thoughts? >> >>>>> >> >>>>> Mingmin >> >>>>> >> >>>>> On Tue, Apr 2, 2019 at 9:56 AM Reuven Lax <re...@google.com >> >>>>> <mailto:re...@google.com>> wrote: >> >>>>>> >> >>>>>> KafkaIO is marked as Experimental, and the comment already warns that >> >>>>>> 0.9 support might be removed. I think that if users still rely on >> >>>>>> Kafka 0.9 we should leave a fork (renamed) of the IO in the tree for >> >>>>>> 0.9, but we can definitely remove 0.9 support from the main IO if we >> >>>>>> want, especially if it's complicated changes to that IO. If we do >> >>>>>> though, we should fail with a clear error message telling users to >> >>>>>> use the Kafka 0.9 IO. >> >>>>>> >> >>>>>> On Tue, Apr 2, 2019 at 9:34 AM Alexey Romanenko >> >>>>>> <aromanenko....@gmail.com <mailto:aromanenko....@gmail.com>> wrote: >> >>>>>>> >> >>>>>>> > How are multiple versions of Kafka supported? Are they all in one >> >>>>>>> > client, or is there a case for forks like ElasticSearchIO? >> >>>>>>> >> >>>>>>> They are supported in one client but we have additional >> >>>>>>> “ConsumerSpEL” adapter which unifies interface difference among >> >>>>>>> different Kafka client versions (mostly to support old ones >> >>>>>>> 0.9-0.10.0). >> >>>>>>> >> >>>>>>> On the other hand, we warn user in Javadoc of KafkaIO (which is >> >>>>>>> Unstable, btw) by the following: >> >>>>>>> “KafkaIO relies on kafka-clients for all its interactions with the >> >>>>>>> Kafka cluster.kafka-clients versions 0.10.1 and newer are supported >> >>>>>>> at runtime. The older versions 0.9.x - 0.10.0.0 are also supported, >> >>>>>>> but are deprecated and likely be removed in near future.” >> >>>>>>> >> >>>>>>> Despite the fact that, personally, I’d prefer to have only one >> >>>>>>> unified client interface but, since people still use Beam with old >> >>>>>>> Kafka instances, we, likely, should stick with it till Beam 3.0. >> >>>>>>> >> >>>>>>> WDYT? >> >>>>>>> >> >>>>>>> On 2 Apr 2019, at 02:27, Austin Bennett <whatwouldausti...@gmail.com >> >>>>>>> <mailto:whatwouldausti...@gmail.com>> wrote: >> >>>>>>> >> >>>>>>> FWIW -- >> >>>>>>> >> >>>>>>> On my (desired, not explicitly job-function) roadmap is to tap into >> >>>>>>> a bunch of our corporate Kafka queues to ingest that data to places >> >>>>>>> I can use. Those are 'stuck' 0.9, with no upgrade in sight (am told >> >>>>>>> the upgrade path isn't trivial, is very critical flows, and they are >> >>>>>>> scared for it to break, so it just sits behind firewalls, etc). >> >>>>>>> But, I wouldn't begin that for probably at least another quarter. >> >>>>>>> >> >>>>>>> I don't contribute to nor understand the burden of maintaining the >> >>>>>>> support for the older version, so can't reasonably lobby for that >> >>>>>>> continued pain. >> >>>>>>> >> >>>>>>> Anecdotally, this could be a place many enterprises are at (though I >> >>>>>>> also wonder whether many of the people that would be 'stuck' on such >> >>>>>>> versions would also have Beam on their current radar). >> >>>>>>> >> >>>>>>> >> >>>>>>> On Mon, Apr 1, 2019 at 2:29 PM Kenneth Knowles <k...@apache.org >> >>>>>>> <mailto:k...@apache.org>> wrote: >> >>>>>>>> >> >>>>>>>> This could be a backward-incompatible change, though that notion >> >>>>>>>> has many interpretations. What matters is user pain. Technically if >> >>>>>>>> we don't break the core SDK, users should be able to use Java SDK >> >>>>>>>> >=2.11.0 with KafkaIO 2.11.0 forever. >> >>>>>>>> >> >>>>>>>> How are multiple versions of Kafka supported? Are they all in one >> >>>>>>>> client, or is there a case for forks like ElasticSearchIO? >> >>>>>>>> >> >>>>>>>> Kenn >> >>>>>>>> >> >>>>>>>> On Mon, Apr 1, 2019 at 10:37 AM Jean-Baptiste Onofré >> >>>>>>>> <j...@nanthrax.net <mailto:j...@nanthrax.net>> wrote: >> >>>>>>>>> >> >>>>>>>>> +1 to remove 0.9 support. >> >>>>>>>>> >> >>>>>>>>> I think it's more interesting to test and verify Kafka 2.2.0 than >> >>>>>>>>> 0.9 ;) >> >>>>>>>>> >> >>>>>>>>> Regards >> >>>>>>>>> JB >> >>>>>>>>> >> >>>>>>>>> On 01/04/2019 19:36, David Morávek wrote: >> >>>>>>>>> > Hello, >> >>>>>>>>> > >> >>>>>>>>> > is there still a reason to keep Kafka 0.9 support? This >> >>>>>>>>> > unfortunately >> >>>>>>>>> > adds lot of complexity to KafkaIO implementation. >> >>>>>>>>> > >> >>>>>>>>> > Kafka 0.9 was released on Nov 2015. >> >>>>>>>>> > >> >>>>>>>>> > My first shot on removing Kafka 0.9 support would remove second >> >>>>>>>>> > consumer, which is used for fetching offsets. >> >>>>>>>>> > >> >>>>>>>>> > WDYT? Is this support worth keeping? >> >>>>>>>>> > >> >>>>>>>>> > https://github.com/apache/beam/pull/8186 >> >>>>>>>>> > <https://github.com/apache/beam/pull/8186> >> >>>>>>>>> > >> >>>>>>>>> > D. >> >>>>>>>>> >> >>>>>>>>> -- >> >>>>>>>>> Jean-Baptiste Onofré >> >>>>>>>>> jbono...@apache.org <mailto:jbono...@apache.org> >> >>>>>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/> >> >>>>>>>>> Talend - http://www.talend.com <http://www.talend.com/> >> >>>>>>> >> >>>>>>> >> >>>>> >> >>>>> >> >>>>> -- >> >>>>> ---- >> >>>>> Mingmin >