Kafka 4.x and KRaft

Kafka 4.x and the KRaft-Only Release Line

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.

The Kafka 4.x release line
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:

Kafka's version and the cluster's finalized feature levelsShell
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).