Compatibility

Compatibility

With the release of Kafka 4.0, significant changes have been introduced that impact compatibility across various components. To assist users in planning upgrades and ensuring seamless interoperability, a comprehensive compatibility matrix has been prepared.

JDK Compatibility Across Kafka Versions

ModuleKafka VersionJava 11Java 17Java 23
Clients4.0.0
Streams4.0.0
Connect4.0.0
Server4.0.0

Note: Java 8 is removed in Kafka 4.0 and is no longer supported.

Server Compatibility

KRaft Cluster VersionCompatibility 4.0 Server (dynamic voter)Compatibility 4.0 Server (static voter)
before 3.2.x
3.3.x
3.4.x
3.5.x
3.6.x
3.7.x
3.8.x
3.9.x
4.0.x

Note: Can’t upgrade server from static voter to dynamic voter, seeKAFKA-16538.

Client/Broker Forward Compatibility

Kafka VersionModuleCompatibility with Kafka 4.0Key Differences/Limitations
0.x, 1.x, 2.0Client❌ Not CompatiblePre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).
Streams❌ Not CompatiblePre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).
Connect❌ Not CompatiblePre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).
2.1 ~ 2.8Client⚠️ Partially CompatibleMore details in the Consumer, Producer, and Admin Client section.
Streams⚠️ Limited CompatibilityMore details in the Kafka Streams section.
Connect⚠️ Limited CompatibilityMore details in the Connect section.
3.xClient✅ Fully Compatible
Streams✅ Fully Compatible
Connect✅ Fully Compatible

Note: Starting with Kafka 4.0, the --zookeeper option in AdminClient commands has been removed. Users must use the --bootstrap-server option to interact with the Kafka cluster. This change aligns with the transition to KRaft mode.