Hi Matthias,

I appreciate your feedback; it really helped me a lot!
Regarding the issue of upgrading streams from a very old version to 4.x,
I understand that streams are much more complicated than Kafka Client.
I think it's reasonable to do two bumps, but I'm not a Kafka Streams expert,
and I would like to hear others' opinions as well.

I just updated the KIP, and I hope I have addressed all your comments above.
Please let me know if I missed anything.

Best,
Kuan-Po Tseng

On 2025/02/25 03:32:06 "Matthias J. Sax" wrote:
> Thanks all. Seems we are converging. :)
> 
> Again, sorry to the previous very long email, but I thought it's 
> important to paint a full end-to-end picture.
> 
> I agree that we should try to keep it simple to the extend reasonable 
> possible! If we really want to suggest just 2.8 / 3.9 as bridge 
> versions, I am ok with this.
> 
> About upgrades across multiple major version. Yes, it's certainly 
> possible for some simple apps, and if we want to keep the guidelines 
> simple, we can also drop 2.8 as bridge release and only use 3.9. My take 
> was just, that it seems to de-risk an upgrade to not recommend skipping 
> a major release; but I can be convinced otherwise :)
> 
> Guess it would simplify the table, and we could cut one column. Let's 
> hear from Sophie again about it.
> 
> 
> 
> For the rows in the table:
> 
> > Kafka Streams 
> > 0.11.x - 2.3.x
> 
> It says
> 
> > No, you'll need to do two-rolling bounce twice.
> 
> I don't think that "two-rolling bounce twice" is necessary, and it might 
> be simpler to be less details on the KIP anyway, but refer to the docs? 
> Similar for other rows... if a two-rolling bounce is necessary, is a "it 
> depends" answer in many cases, and just omitting it in this table might 
> be easier.
> 
> Instead, it might be good to call out, what needs to be upgraded though, 
> ie, need to upgrade from "eager" to "cooperative" rebalancing if old 
> version is 0.11 to 2.3. Similar to what we already say for:
> 
> > Kafka Streams 
> > 2.4.x - 3.9.x with EOSv1
> 
> when we call out EOSv1 is removed with 4.0.
> 
> 
> 
> Side question: do we need to call out that the rows are not mutually 
> exclusive, but cumulative? Ie, if one is on 2.2 with EOSv1 enabled, two 
> row apply: need to switch from eager to cooperative rebalancing, and 
> need to switch from EOVv1 to EOSv2. -- Or is this clear anyway?
> 
> 
> 
> > Since Kafka Streams 2.4.0 introduced cooperative rebalancing, which is 
> > enabled by default, it is no longer possible to directly upgrade a Streams 
> > application from a version prior to 2.4 to 2.4 or higher.
> 
> "which is enabled by default" is not really the reason why the upgrade 
> from 2.3 (and earlier) to 4.0 breaks. The reason is, that "eager" 
> support is dropped with 4.0.
> 
> 
> 
> 
> -Matthias
> 
> 
> On 2/24/25 8:28 AM, Kuan Po Tseng wrote:
> > Hello everyone,
> > 
> > Thanks Chia-Ping for the advice. I’ve created a table to cover all upgrade 
> > path scenarios, hoping it provides more clarity. Please let me know if I’ve 
> > misunderstood anything. I appreciate any corrections!
> > 
> > Additionally, as I recently updated the KIP title, here’s the new link:
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1124%3A+Providing+a+clear+Kafka+Client+upgrade+path+for+4.x
> > 
> > Regarding Kafka Connect, I’m still investigating and will update the KIP 
> > soon. I’ll share any new findings with you as soon as possible.
> > 
> > Thank you!
> > 
> > Best,
> > Kuan-Po
> > 
> > On 2025/02/23 19:12:41 Chia-Ping Tsai wrote:
> >> hi Kuan-Po
> >>
> >>> Apologies for my mistake... Indeed, 2.1 should be the starting point for 
> >>> the bridge version.
> >>
> >> Have you updated the KIP? it seems the bridge version of client still 
> >> starts from 2.0
> >>
> >> Additionally, if I were a user hesitant to adopt the bridge version, it 
> >> would be helpful to list common reasons to aid in choosing the "best" 
> >> bridge version. For example:
> >>
> >> ​Client Upgrade Paths
> >>
> >> // here is the table
> >>
> >> Best Bridge Version to you
> >>
> >> // add some explanation
> >>
> >> 1. minimize code refactoring - // Kafka Client: 3.3.x - 3.9.x + Kafka 
> >> Streams: 3.6.x - 3.9.x
> >> 2. starts with quorum APIs - // 3.3.x - 3.9.x
> >> 3. xxx
> >> 4. aaa
> >> n. last stable/active version: 3.9.x // we can emphasize the 3.9 is 
> >> recommended by community
> >>
> >> Best,
> >> Chia-Ping
> >>
> >>
> >>
> >> On 2025/02/23 16:10:03 Kuan Po Tseng wrote:
> >>> Thanks, Jun and Juma,
> >>>
> >>> Apologies for my mistake... Indeed, 2.1 should be the starting point for 
> >>> the bridge version.
> >>> I will revise my statement as follows:
> >>> - For Kafka Clients below 2.1, users need to upgrade to 3.9 first, then 
> >>> to 4.x.
> >>> - For Kafka Clients from 2.1 or above, users can directly upgrade to 4.x.
> >>>
> >>> As for Kafka Connect, I initially didn’t consider it because I saw it as 
> >>> another form of a server.
> >>> However, I’m not very familiar with this area and will need some time to 
> >>> look into it.
> >>>
> >>> ---
> >>>
> >>> Thanks, Matthias and Sophie, for the detailed explanation.
> >>>
> >>> The Streams upgrade is indeed complex... I took some time to digest these 
> >>> details.
> >>> It sounds like the key concerns for the Streams upgrade are:
> >>> 1. Users still using EOSv1
> >>> 2. Users relying on Eager rebalancing (i.e., versions before 2.4)
> >>>
> >>> With this in mind, should we adjust the recommended upgrade path to the 
> >>> following?
> >>> - For Kafka Streams below 2.4, you’ll need to first upgrade to 2.8, then 
> >>> to 3.9, and finally to 4.x.
> >>> - For Kafka Streams using EOSv1 on versions 2.4 or above, you’ll need to 
> >>> upgrade to 3.9 first, then to 4.x.
> >>> - Others can directly upgrade to 4.x.
> >>> *Note*: If upgrading Streams from 3.4 or below, you’ll need to perform 
> >>> two rolling bounces.
> >>> For more details, please refer to: [Kafka Streams Upgrade 
> >>> Guide](https://kafka.apache.org/39/documentation/streams/upgrade-guide).
> >>> Also, Kafka Streams requires broker compatibility considerations, see: 
> >>> [Streams API Broker 
> >>> Compatibility](https://kafka.apache.org/39/documentation/streams/upgrade-guide#streams_api_broker_compat)
> >>>
> >>> The above approach simplifies the definition of the bridge version.
> >>> Instead of providing a range (e.g., [3.5-3.9]), would it be better to 
> >>> specify 3.9 directly to
> >>> reduce users' decision anxiety? This aligns with Juma’s recommendation 
> >>> for bridge versions
> >>> in the Kafka Clients upgrade. 3.9 is the last version before 4.0,
> >>> containing the most bug fixes and offering greater stability.
> >>> For detailed upgrade steps, such as two-rolling bounce upgrades,
> >>> like Matthias recommended we should direct users to the Streams upgrade 
> >>> documentation.
> >>> And I feel the examples in my KIP are too simplistic,
> >>> but I don’t think I should make them as detailed as the Streams upgrade 
> >>> guide.
> >>> Otherwise, I’d just be duplicating content. The goal of this KIP should 
> >>> be to provide
> >>> users with a clear high-level upgrade path, while the detailed steps 
> >>> should be
> >>> referenced from the Streams upgrade documentation.
> >>>
> >>> Regarding ALOS, it looks like we support versions from 0.11.x to 4.x,
> >>> so there’s no need to specify additional details, right? Or am I missing 
> >>> something?
> >>>
> >>> Lastly, based on Matthias' suggestion, I have revised the motivation 
> >>> section to emphasize:
> >>> - Simplifying testing
> >>> - Reducing compatibility challenges across too many versions
> >>> - Clearly defining the recommended upgrade paths
> >>>
> >>> Best,
> >>> Kuan-Po Tseng
> >>>
> >>> On 2025/02/21 23:55:51 Sophie Blee-Goldman wrote:
> >>>> whew, long response from Matthias :P Lot to digest but I want to add
> >>>> on/respond to a few points:
> >>>>
> >>>>   If they want to be "advantageous", they could make it a two step 
> >>>> upgrade
> >>>>> I guess, and go from 2.5 (or older) directly to 3.x and apply all
> >>>>> required code changes in a single upgrade step, and repeat the same to
> >>>>> upgrade to 4.0. But I would not necessarily recommend to do an non-API
> >>>>> compatible upgrade directly, and for sure officially discourage it for
> >>>>> two major releases.
> >>>>
> >>>> Are we still talking about only API compatibility here? Because I'm not 
> >>>> so
> >>>> sure why we would
> >>>> officially discourage upgrading across 2 major releases as long as their
> >>>> code is compatible. Of
> >>>> course if you're referring to possible gotchas from upgrading over such a
> >>>> long period, that's worth
> >>>> discussing, but it's independent of API compatibility. Imo API
> >>>> compatibility is a binary thing: either
> >>>> it's possible to do a direct upgrade or it's not. Why do we have to
> >>>> officially recommend anything?
> >>>>
> >>>> Or we can distinguish
> >>>>> between ALOS and EOS and have an "bridge release version range" for both
> >>>>> cases.
> >>>>
> >>>> I like this idea. EOS and ALOS are very distinct in Streams and may only
> >>>> become moreso divided
> >>>> over time. It's worth calling them out as separate cases
> >>>>
> >>>> Now regarding the eager/cooperative rebalancing protocol thing in 
> >>>> Streams:
> >>>>
> >>>> As Matthias said we hope to officially drop support for eager rebalancing
> >>>> in 4.0, and I've prepared
> >>>> a PR for this already: https://github.com/apache/kafka/pull/18988
> >>>>
> >>>> This does have the effect of forcing a bridge release for users hoping to
> >>>> upgrade directly from 2.3
> >>>> or below to 4.0+, and users will have to follow a specific upgrade path 
> >>>> to
> >>>> do so as outlined in the
> >>>> PR description. Assuming we fit that into 4.0, it should definitely be
> >>>> called out in this KIP. (Basically
> >>>> users need to use the `upgrade.from` config to first upgrade to the 
> >>>> bridge
> >>>> release, then go on to 4.0)
> >>>>
> >>>> There are also other runtime incompatibilities that have been introduced
> >>>> into Streams over the years
> >>>> that restrict direct live upgrades across certain versions. It would also
> >>>> be good to call this out in
> >>>> the KIP and point to the `upgrade.from` config, though we can point to 
> >>>> the
> >>>> Streams upgrade guide
> >>>> for details rather than try to reiterate everything here.
> >>>>
> >>>>
> >>>> On Thu, Feb 20, 2025 at 5:21 PM Matthias J. Sax <mj...@apache.org> wrote:
> >>>>
> >>>>> Hello,
> >>>>>
> >>>>> took me some time, and sorry for the long email, but it's complicated...
> >>>>>
> >>>>> First, I just re-read the latest version of the KIP. Thanks for all the
> >>>>> updates.
> >>>>>
> >>>>>
> >>>>> One thing that I an missing in the motivation is, that we really want to
> >>>>> stop support direct upgrades from older versions, to cut down our
> >>>>> upgrade matrix for testing. The motivation does somewhat touch on it,
> >>>>> but I think it would be good to be more explicit. Even if it isn't
> >>>>> something users care about, it's a second main motivation for us, in
> >>>>> addition to the complexity to actually keep the versions compatible.
> >>>>>
> >>>>>
> >>>>> I also want to further clarify my understanding of the KIP. The goal is
> >>>>> not to define what upgrades are possible, right? What is possible is
> >>>>> much more nuanced. -- But we rather want to define what we recommend? Is
> >>>>> this understanding correct? If yes, it might also be worth to add to the
> >>>>> motivation section.
> >>>>>
> >>>>>
> >>>>> I also think, we actually need to more explicitly distinguish three
> >>>>> categories of compatibility, but did so far only discuss two of them.
> >>>>> Even if the KIP does mention all three. Ideally, we should have a
> >>>>> section in the motivation, explaining the three different types of
> >>>>> compatibility, and explicitly state which one this KIP is concerned
> >>>>> with, and which ones it's not concerned with.
> >>>>>
> >>>>>
> >>>>> (1) protocol compatibility: ie, what client-broker versions are 
> >>>>> compatible
> >>>>>
> >>>>> This one is not in the focus of the KIP, but it might still be good to
> >>>>> be explicit about it. Could be explained in the motivation for
> >>>>> completeness, and maybe refer to KIP-896 for 4.x related changes.
> >>>>>
> >>>>> Btw: there is also some additional limitations for KS-broker
> >>>>> compatibility:
> >>>>>
> >>>>> https://kafka.apache.org/39/documentation/streams/upgrade-guide#streams_api_broker_compat
> >>>>>
> >>>>> Many of you know this, but wanted to mention it for completeness. Not
> >>>>> sure if we need to mention it on the KIP.
> >>>>>
> >>>>>
> >>>>>
> >>>>> (2) API compatibility (ie Java/Scala API).
> >>>>>
> >>>>> This is only mentioned briefly in the KIP, and again, it's not the core
> >>>>> of the KIP, but I think it is still important to include it more
> >>>>> explicitly, because we talk about "bridge version".
> >>>>>
> >>>>> Given the rule that we are allowed to break API compatibility in major
> >>>>> release, but still guarantee API compatibility for the last three minor
> >>>>> releases, it can be confusing and it would be great to explain it 
> >>>>> better.
> >>>>>
> >>>>> In the end, directly upgrading from 2.5 or older to 4.x is practically
> >>>>> impossible as we went through two major releases which did remove
> >>>>> deprecated APIs, and I would not recommend to do such a direct upgrade.
> >>>>>
> >>>>>   From an API POV, if one is on 2.5 or older, they should first upgrade
> >>>>> to 2.6/2.7/2.8, and than lazily migrate off any older stuff what is
> >>>>> removed with 3.0. Afterwards, they can upgrade to 3.7/3.8/3.9 following
> >>>>> the same pattern, and only upgrade to 4.0 in a third step.
> >>>>>
> >>>>> If they want to be "advantageous", they could make it a two step upgrade
> >>>>> I guess, and go from 2.5 (or older) directly to 3.x and apply all
> >>>>> required code changes in a single upgrade step, and repeat the same to
> >>>>> upgrade to 4.0. But I would not necessarily recommend to do an non-API
> >>>>> compatible upgrade directly, and for sure officially discourage it for
> >>>>> two major releases.
> >>>>>
> >>>>> Thus, the information in the KIP about "bridge version" to 4.x begin
> >>>>> "2.4.x - 3.9.x" seems to fall short, and mentioning
> >>>>>
> >>>>>> To minimize code refactoring, we recommend the following bridge 
> >>>>>> versions
> >>>>> that maintain API compatibility with Kafka 4.x:
> >>>>>>
> >>>>>> Kafka Client: 3.3.x - 3.9.x
> >>>>>> Kafka Streams: 3.6.x - 3.9.x
> >>>>>
> >>>>> seems not to be sufficient to me.
> >>>>>
> >>>>>
> >>>>> Hence, the provided "Upgrade Examples" might be oversimplified, and we
> >>>>> might want to refine them.
> >>>>>
> >>>>>
> >>>>>
> >>>>> (3) Runtime compatibility. This one is specific to Kafka Streams, but
> >>>>> not to clients from my understanding. Client are stateless and thus they
> >>>>> don't face any issue, but Kafka Streams is stateful, and thus need to
> >>>>> take care of it. Please correct me if I am wrong.
> >>>>>
> >>>>> The KIP so far, seems to only consider this one, and what is proposed
> >>>>> make sense to me on a high level. However, I am confused why Kafka
> >>>>> Clients are mentioned here, too, as this type of compatibility should
> >>>>> not really be relevant for them? Even if clients might also have some
> >>>>> semantic changes, these should always align with API changes (ie, old
> >>>>> deprecate API might have slightly different semantics than new API).
> >>>>>
> >>>>> Now about the currently proposes ranges from Kafka Streams:
> >>>>>
> >>>>>> Kafka Streams
> >>>>>> Current Version 0.11.x - 2.3.x
> >>>>>> Bridge Release 2.4.x - 3.9.x
> >>>>>> Target Version 4.x
> >>>>>
> >>>>> This could make sense for "eager vs cooperative" rebalancing, however,
> >>>>> at the current point, we did not remove "eager" in 4.0 yet. I was
> >>>>> actually just syncing up with Sophie about it, and it was a slip, and we
> >>>>> want to propose to remove "eager" in 4.0 (Sophie will prepare a PR), so
> >>>>> we can avoid keeping "eager" until 5.0.
> >>>>>
> >>>>> We did officially deprecate "eager" in 3.1 release, so we are covered to
> >>>>> actually remove it with 4.0.
> >>>>>
> >>>>> If we would not drop "eager", using `2.4.x to 3.9.x` would not make
> >>>>> sense though. If we keep "eager" in 4.0, user can still upgrade from
> >>>>> 2.0.x to 4.0.x w/o issues from a runtime perspective.
> >>>>>
> >>>>> If we drop "eager" we also need to drop the corresponding system tests
> >>>>> that upgrade to 4.0, and also stop testing upgrading from "eager to
> >>>>> cooperative" with 3.9 being the highest target version in this system
> >>>>> test. And if we don't test it, it's not officially supported any
> >>>>> longer... (even if people could still upgrade via an offline upgrade --
> >>>>> what really breaks if we remove "eager" is "only" the online
> >>>>> [two-]rolling bounce upgrade...)
> >>>>>
> >>>>> However, there is another change we want to consider: we did remove
> >>>>> EOSv1 in 4.0 release, which was replace with EOSv2 in Kafka Streams 2.6
> >>>>> via KIP-447.
> >>>>>
> >>>>> Thus, for EOSv1 users, they cannot directly upgrade to 4.0 either, but
> >>>>> only EOSv2 users can. Thus, it might make sense to actually use "bridge
> >>>>> releases 2.6.x - 3.9.x" just to keep it simple... Or we can distinguish
> >>>>> between ALOS and EOS and have an "bridge release version range" for both
> >>>>> cases.
> >>>>>
> >>>>> Btw: using EOSv2 required broker version 2.5+, that we might also want
> >>>>> to call out.
> >>>>>
> >>>>>
> >>>>>
> >>>>> Last but not least, while we are very explicit in the KS upgrade docs,
> >>>>> it might be worth to call out that some upgrades require a two-rolling
> >>>>> bounce approach, and users should always consult the upgrade docs... We
> >>>>> use two-rolling bounce upgrade to bridge runtime backward incompatible
> >>>>> changes (similar to what we do broker side, when IBP version is bumped).
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> So overall, it seems that we need to really have two guidelines, not
> >>>>> just one? For for API compatibility, which is much stricter, and one for
> >>>>> runtime compatibility?
> >>>>>
> >>>>> If we really want to make a recommendation that is most easy to
> >>>>> understand, we might want to only go with API compatibility. Not sure if
> >>>>> this might be "too restrictive" though?
> >>>>>
> >>>>>
> >>>>> Curious to get you though on all this.
> >>>>>
> >>>>>
> >>>>> -Matthias
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 2/19/25 5:51 PM, Kuan Po Tseng wrote:
> >>>>>> Hi Lianet,
> >>>>>>
> >>>>>> Thank you for your feedback!
> >>>>>>
> >>>>>> Yes, the current KIP focuses solely on the client upgrade for 4.x. I
> >>>>> have updated the title accordingly and also included the KS upgrade 
> >>>>> link in
> >>>>> the KIP.
> >>>>>>
> >>>>>> Thanks again!
> >>>>>>
> >>>>>> Best regards,
> >>>>>> Kuan-Po
> >>>>>>
> >>>>>> On 2025/02/19 16:59:25 "Lianet M." wrote:
> >>>>>>> Hello all, sorry a bit late, just minor comments on this one:
> >>>>>>>
> >>>>>>> - Should we clarify in the title or at the beginning of the KIP that 
> >>>>>>> it
> >>>>> is
> >>>>>>> proposing a client upgrade path for 4.x? The broader considerations 
> >>>>>>> for
> >>>>>>> upgrades discussed in this thread will be tackled separately (seems we
> >>>>> all
> >>>>>>> agree).
> >>>>>>>
> >>>>>>> - The KS upgrade path seems to be the tricky one, and all that the 
> >>>>>>> user
> >>>>>>> needs to consider to successfully follow the provided path for KS is 
> >>>>>>> not
> >>>>>>> clear in the KIP, but it's all well explained on the KS upgrade notes
> >>>>> for
> >>>>>>> 3.9, should we add a ref to that?
> >>>>>>> https://kafka.apache.org/39/documentation/streams/upgrade-guide
> >>>>>>>
> >>>>>>> Thanks Kuan Po!
> >>>>>>>
> >>>>>>> Lianet
> >>>>>>>
> >>>>>>> On Tue, Feb 11, 2025 at 11:22 AM Kuan Po Tseng <brandb...@gmail.com>
> >>>>> wrote:
> >>>>>>>
> >>>>>>>> Hello everyone,
> >>>>>>>>
> >>>>>>>> If there are no other opinions, I would like to start a vote 
> >>>>>>>> tomorrow,
> >>>>>>>> thank you!
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>> Kuan Po
> >>>>>>>>
> >>>>>>>> On Sat, Feb 8, 2025 at 1:51 AM Kuan Po Tseng <brandb...@apache.org>
> >>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Hi all,
> >>>>>>>>>
> >>>>>>>>> Based on our discussion, I added a section on choosing the 
> >>>>>>>>> appropriate
> >>>>>>>>> bridge version from an API compatibility perspective for upgrading 
> >>>>>>>>> to
> >>>>>>>> Kafka
> >>>>>>>>> 4.0. Let me know if you have any thoughts. Thank you!
> >>>>>>>>>
> >>>>>>>>> Best,
> >>>>>>>>> Kuan-Po
> >>>>>>>>>
> >>>>>>>>> On 2025/02/07 03:34:46 Kuan Po Tseng wrote:
> >>>>>>>>>> Hi Chia-Ping,
> >>>>>>>>>>
> >>>>>>>>>> Sorry for the delayed response. I’ve checked all relevant JIRAs 
> >>>>>>>>>> using
> >>>>>>>>> the following Jira Query Language:
> >>>>>>>>>>
> >>>>>>>>>> project = KAFKA AND status in (Resolved, Closed) AND fixVersion =
> >>>>> 4.0.0
> >>>>>>>>> AND text ~ "Remove" order by updated DESC
> >>>>>>>>>>
> >>>>>>>>>> Based on this, I checked the JIRAs related to removing deprecated
> >>>>>>>>> methods in client modules. The minimum backward-compatible client
> >>>>>>>> versions
> >>>>>>>>> for client 4.0 are as follows:
> >>>>>>>>>> - Producer: 3.3.0
> >>>>>>>>>>     Reason: Partitioner#onNewBatch was deprecated in 3.3.0, and was
> >>>>>>>>> removed by https://issues.apache.org/jira/browse/KAFKA-18295
> >>>>>>>>>> - Consumer: 2.4.0
> >>>>>>>>>>     Reason: Consumer#committed was deprecated in 2.4.0, and was
> >>>>> removed
> >>>>>>>> by
> >>>>>>>>> https://issues.apache.org/jira/browse/KAFKA-17451
> >>>>>>>>>> - Admin: 3.3.0
> >>>>>>>>>>     Reason: ListConsumerGroupOffsetsOptions was deprecated in 3.3.0
> >>>>> and
> >>>>>>>>> was removed by https://issues.apache.org/jira/browse/KAFKA-18291
> >>>>>>>>>>
> >>>>>>>>>> You can find a list of all related JIRAs and pull requests in this
> >>>>>>>>> Google Sheet:
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>> https://docs.google.com/spreadsheets/d/1ZWNRk1rjWptjpGM2UtT0Q3lDULhrqkP_UfHr9roQW3M/edit?usp=sharing
> >>>>>>>>>>
> >>>>>>>>>> There are also some public methods removed in 4.0, such as:
> >>>>>>>>>> - KafkaFuture#Function, KafkaFuture#thenApply
> >>>>>>>>> https://issues.apache.org/jira/browse/KAFKA-17903
> >>>>>>>>>> - JmxReported(String)
> >>>>>>>> https://issues.apache.org/jira/browse/KAFKA-18077
> >>>>>>>>>> , but I'm uncertain about how we should handle these.
> >>>>>>>>>>
> >>>>>>>>>> Best,
> >>>>>>>>>> Kuan-Po
> >>>>>>>>>>
> >>>>>>>>>> On 2025/02/06 19:08:49 Chia-Ping Tsai wrote:
> >>>>>>>>>>> hi Kuan-Po
> >>>>>>>>>>>
> >>>>>>>>>>> any update? Now that an upgrade path for bridge versions exists, 
> >>>>>>>>>>> we
> >>>>>>>>> can introduce additional "conditions" to assist users in selecting 
> >>>>>>>>> the
> >>>>>>>>> "best" bridge version. For example, we can provide guidance on which
> >>>>>>>> bridge
> >>>>>>>>> versions offer backward compatibility with Kafka 4.0 client or are
> >>>>>>>>> compatible with Kafka 4.0 server.
> >>>>>>>>>>>
> >>>>>>>>>>> Best,
> >>>>>>>>>>> Chia-Ping
> >>>>>>>>>>>
> >>>>>>>>>>> On 2025/01/22 04:48:36 Chia-Ping Tsai wrote:
> >>>>>>>>>>>>> - If we support 2.0+ to 4.0 client/KS upgrade it's simpler, but
> >>>>>>>> of
> >>>>>>>>> course brokers cannot be 4.0 yet -- but I guess this would be
> >>>>> something
> >>>>>>>>> natural? Given that the clients would be on 2.0, brokers cannot be 
> >>>>>>>>> 4.0
> >>>>>>>> yet,
> >>>>>>>>> or clients would have crashed already... Thus, I think I slightly
> >>>>> prefer
> >>>>>>>>> this one.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Using a major version as a bridge is a viable approach. We can
> >>>>>>>>> emphasize the limitations of this method to guide users in selecting
> >>>>> the
> >>>>>>>>> most suitable bridge version.
> >>>>>>>>>>>>
> >>>>>>>>>>>>> For KS, from an API compatibility POV, upgrading from anything
> >>>>>>>>> older than 3.6 might not work any longer (for DSL users; of course,
> >>>>>>>>> depending on what APIs they are using). And for PAPI, the old API 
> >>>>>>>>> was
> >>>>>>>>> removed too, so only if the new one is use (introduced in 2.7) a
> >>>>> seamless
> >>>>>>>>> upgrade would work smoothly.
> >>>>>>>>>>>>
> >>>>>>>>>>>> You make a valid point. The previous discussion overlooked the 
> >>>>>>>>>>>> APIs
> >>>>>>>>> that were removed in version 4.0.
> >>>>>>>>>>>>
> >>>>>>>>>>>> We could also emphasize the BC advantages. As an example, users
> >>>>>>>> have
> >>>>>>>>> the option of using version 2.7 as a bridge and subsequently upgrade
> >>>>>>>>> without code alterations or recompilation. Of course, we need to 
> >>>>>>>>> check
> >>>>>>>> the
> >>>>>>>>> version of other PAPI removal.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Best,
> >>>>>>>>>>>> Chia-Ping
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>> Matthias J. Sax <mj...@apache.org> 於 2025年1月22日 凌晨2:55 寫道:
> >>>>>>>>>>>>> For KS, from an API compatibility POV, upgrading from anything
> >>>>>>>>> older than 3.6 might not work any longer (for DSL users; of course,
> >>>>>>>>> depending on what APIs they are using). And for PAPI, the old API 
> >>>>>>>>> was
> >>>>>>>>> removed too, so only if the new one is use (introduced in 2.7) a
> >>>>> seamless
> >>>>>>>>> upgrade would work smoothly.
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>
> >>
> 
> 

Reply via email to