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. > > > > > >