Current state: Adopted
Discussion thread: link
Vote thread: link
JIRA:
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
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.
Java 17 will be released later this year and it will be a LTS release. To avoid supporting 4 Java releases once Java 18 is released, we would like to drop support for Java 8. However, there are additional considerations:
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.
None.
Change sourceCompatibility/targetCompatibility/release
from 1.8
to 11
in build.gradle.
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.
Rejected Alternatives