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, seeKAFKA-16538.

Client/Broker Forward Compatibility

Kafka Version

Module

Compatibility with Kafka 4.0

Key Differences/Limitations

0.x, 1.x, 2.0

Client

❌ 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.8

Client

⚠️ 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.x

Client

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