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.
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.
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.
Pre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).
Pre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).
Pre-0.10.x protocols are fully removed in Kafka 4.0 (KIP-896).
More details in the Consumer, Producer, and Admin Client section.
More details in the Kafka Streams section.
More details in the Connect section.
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.