Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Mention targetCompatibility and release build flags too

Table of Contents

Status

Current state:  "Under Discussion"Adopted

Discussion threadlink

Vote Discussion threadlink

JIRA:

  • Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyKAFKA-12929
     (3.0)
  • Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyKAFKA-12894
     (4.0)

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

Motivation

Kafka currently supports Java 8, 11 and 15 (soon to be 16). In other words, we support the two most recent LTS versions and the most recent non LTS version. Since we have to compile and run the tests on each supported version, there is a non-trivial cost from a development and testing perspective.

...

We expect Apache Kafka 3.0 to be released around July/August 2021 and 4.0 will be at least 16 months after that. Given this and the above, we propose deprecating Java 8 support in Apache Kafka 3.0 and dropping support in Apache Kafka 4.0. Users will have ample time and warning to migrate away from Java 8.

Public Interfaces

None.

Proposed Changes

  • Deprecate Java 8 build in Kafka 3.0: update documentation including the downloads page.
  • In Kafka 4.0:
    • Change sourceCompatibility/targetCompatibility/release from 1.78 to 1.811 in build.gradle.

    • Remove all Java 8 specific code (including workarounds and conditional code based on the Java version).
    • Update Readme and documentation (including the downloads page) not to mention Java 8 as a supported version.

Compatibility, Deprecation, and Migration Plan

Users who have not and cannot upgrade to Java 11 can continue to use Kafka 3.x until they can upgrade the given application or cluster. This can be done incrementally since the protocol is compatible independently of the Java version.

...