Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Current state: "Under Discussion"

...

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

KIP-750, which specifies that Apache Kafka 4.0 will require Java 11, was approved in June 2021. This was a few months before Java 17 was released and well before there was clarity regarding the timeline of Apache Kafka 4.0.

...

Balancing the various aspects, we propose only deprecating Java 11 support for the kafka broker its dependent modules in Apache Kafka 3.7 and dropping it in Apache Kafka 4.0. The remaining modules (clients, streams, connect, tools, etc.) will continue to support Java 11.

Public Interfaces

None.

Proposed Changes

  • Deprecate Java 11 build for the kafka broker and its dependent modules in Kafka 3.7: update documentation including the downloads page.
  • In Kafka 4.0:
    • Set sourceCompatibility/targetCompatibility/release to 17 for the relevant modules in build.gradle.

    • Remove all Java 11 specific code from the relevant modules.
    • Update Readme and documentation (including the downloads page) to specify Java 17 as a requirement for the kafka broker and relevant modules. All other modules (including clients, streams, connect and tools) would continue to require Java 11 (as specified by KIP-750).
  • The affected modules are: kafka-server-common, kafka-server, kafka_2.13, kafka-storage, kafka-metadata, kafka-group-coordinator, kafka-raft.

Compatibility, Deprecation, and Migration Plan

Users who have not and cannot upgrade the Java version used by the kafka brokers to Java 17 on the server can continue to use Kafka 3.x until they can upgrade the given cluster. This can be done incrementally since the protocol is compatible independently of the Java version.

Rejected Alternatives

  1. Continue supporting Java 11 for the server modules.

...