For most of its life Kafka 129 kept cluster metadata in Apache ZooKeeper. KIP-500 replaced ZooKeeper with KRaft, a Raft quorum of Kafka controllers (The KRaft Metadata Quorum), and Kafka 4.0 removed ZooKeeper mode: a ZooKeeper cluster must migrate to KRaft on 3.x (3.9 is the bridge release) before it upgrades.
| Release | Date | Headlines |
|---|---|---|
| 4.0.0 | 18 Mar 2025 | No ZooKeeper; KIP-848 consumer protocol GA; brokers need Java 17 |
| 4.1.0 | 4 Sep 2025 | Queues for Kafka in preview; ELR on for new clusters |
| 4.2.0 | 17 Feb 2026 | Queues production-ready; Java 25 supported |
| 4.3.0, 4.3.1 | 22 May, 25 Jun 2026 | Broker cordoning, OAuth assertions; 4.3.1 is used here |
Kafka aims for three feature releases a year; 4.4.0 reached its third release candidate on 29 September 2026. A running cluster reports its version and the feature levels it has finalized:
docker exec l3-kafka /opt/kafka/bin/kafka-topics.sh --version
docker exec l3-kafka /opt/kafka/bin/kafka-features.sh --bootstrap-server l3-kafka:9092 \
describe | awk '{printf "%-33s supported up to %-8s finalized %s\n", $2, $6, $8}'Output
4.3.1 eligible.leader.replicas.version supported up to 1 finalized 1 group.version supported up to 1 finalized 1 kraft.version supported up to 1 finalized 0 metadata.version supported up to 4.3-IV0 finalized 4.3-IV0 share.version supported up to 1 finalized 1 streams.version supported up to 1 finalized 1 transaction.version supported up to 2 finalized 2
A fresh 4.3 cluster turns on eligible leader replicas (Leader Election), share groups and transaction version 2; kraft.version 0 means a static controller quorum (Formatting Storage).