Table of Contents |
---|
Status
Current state: "Under Discussion"Adopted
Discussion thread: link
Vote Discussion thread: link
JIRA:
(3.0)Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-12929
(4.0)Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-12894
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
from1.78
to1.8
11
inbuild.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.
...