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

Module

Kafka Version

Java 11

Java 17

Java 23

Clients

4.0.0

✅

✅

✅

Streams

4.0.0

✅

✅

✅

Connect

4.0.0

❌

✅

✅

Server

4.0.0

❌

✅

✅

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

Server Compatibility

KRaft Cluster Version

Compatibility 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, see KAFKA-16538.

Client/Broker Forward Compatibility

Kafka VersionModuleCompatibility with Kafka 4.0Key Differences/Limitations
0.x, 1.x, 2.0Client❌ Not Compatible

Pre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).

Streams❌ Not Compatible

Pre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).

Connect❌ Not Compatible

Pre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).

2.1 ~ 2.8Client⚠️ Partially Compatible

More details in the Consumer, Producer, and Admin Client section.

Streams⚠️ Limited Compatibility

More details in the Kafka Streams section.

Connect⚠️ Limited Compatibility

More 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.