You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by Chris Egerton <fe...@gmail.com> on 2022/04/14 03:19:08 UTC

Connect/broker compatibility

Hi all,

I noticed that we recently altered Kafka Connect to explicitly disable
idempotent producers by default [1], with the rationale being that this
ensured compatibility with brokers running versions older than 0.11 and
ACL-protected brokers running versions older than 2.8. There has also been
mention that KIP-318 [2] would have to be approved before reverting this
change and enabling idempotent producers by default on Kafka Connect.

This is a pretty restrictive precedent to set and I want to see if we could
consider relaxing it a little bit. When KIP-679 [3] was approved and
idempotence was enabled by default in all producers starting with 3.0, it
was with full understanding that it would lead to breaking changes in these
scenarios for all producer applications, and with conviction that the
upgrade steps laid out were sufficient for users to be able to handle this
gracefully. Kafka Connect is one such producer application, and it already
gives users the means to implement the upgrade steps laid out in KIP-679 in
order to remain compatible with older broker versions.

Given that it's possible for users to reconfigure their clusters to work
properly with older broker versions, the changes in KIP-679 were released
in a major version bump (3.0.0) that permits breaking of backwards
compatibility, and there is no significant operational burden placed on
users of Kafka Connect by KIP-679 that isn't also placed on other producer
applications, do we really need to go through the process of yet another
KIP in order to apply these changes to Kafka Connect? And if so, what
differentiates Kafka Connect from all the other producer applications that
were affected by KIP-679, including Kafka Streams applications configured
with the (default) processing mode of "at least once"?

Instead of choosing to emphasize cross-major-version backwards
compatibility between Kafka Connect and Kafka brokers, we might instead
invest our efforts in creating more detailed upgrade notes that call out
changes like these and let users know exactly how to configure their Kafka
Connect workers (and producer applications in general) when upgrading Kafka
Connect and/or their Kafka brokers.

[1] - https://issues.apache.org/jira/browse/KAFKA-13759
[2] -
https://cwiki.apache.org/confluence/display/KAFKA/KIP-318%3A+Make+Kafka+Connect+Source+idempotent
[3] -
https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default

Cheers,

Chris