CORRECTION: in option 2, we enumerate KIPs which may bring incompatibility
with older brokers (not all KIPs).

On Fri, Mar 18, 2022 at 7:12 PM Jungtaek Lim <kabhwan.opensou...@gmail.com>
wrote:

> Hi dev,
>
> I would like to initiate the discussion about how to deal with the
> migration guide on upgrading Kafka to 3.1 (from 2.8.1) in upcoming Spark
> 3.3.
>
> We didn't care much about the upgrade of Kafka dependency since our belief
> on Kafka client has been that the new Kafka client version should have no
> compatibility issues with older brokers. Based on semantic versioning,
> upgrading major versions rings an alarm for me.
>
> I haven't gone through changes that happened between versions, but found
> one KIP (KIP-679
> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-679%3A+Producer+will+enable+the+strongest+delivery+guarantee+by+default>)
> which may not work with older brokers with specific setup. (It's described
> in the "Compatibility, Deprecation, and Migration Plan" section of the KIP).
>
> This may not be problematic for the users who upgrade both client and
> broker altogether, but end users of Spark may be unlikely the case.
> Computation engines are relatively easier to upgrade. Storage systems
> aren't. End users would think the components are independent.
>
> I looked through the notable changes in the Kafka doc, and it does mention
> this KIP, but it just says the default config has changed and doesn't
> mention about the impacts. There is a link to KIP, that said, everyone
> needs to read through the KIP wiki page for details.
>
> Based on the context, what would be the best way to notice end users for
> the major version upgrade of Kafka? I can imagine several options
> including...
>
> 1. Explicitly mention that Spark 3.3 upgrades Kafka to 3.1 with linking
> the noticeable changes in the Kafka doc in the migration guide.
> 2. Do 1 & spend more effort to read through all KIPs and check
> "Compatibility, Deprecation, and Migration Plan" section, and enumerate all
> KIPs (or even summarize) in the migration guide.
> 3. Do 2 & actively override the default configs to be compatible with
> older versions if the change of the default configs in Kafka 3.0 is
> backward incompatible. End users should set these configs explicitly to
> override them back.
> 4. Do not care. End users can indicate the upgrade in the release note,
> and we expect end users to actively check the notable changes (& KIPs) from
> Kafka doc.
> 5. Options not described above...
>
> Please take a look and provide your voice on this.
>
> Thanks,
> Jungtaek Lim (HeartSaVioR)
>
> ps. Probably this would be applied to all non-bugfix versions of
> dependency upgrades. We may still want to be pragmatic, e.g. pass-through
> for minor versions, though.
>

Reply via email to