2.8.2

Latest release in branch 2.8
Released 3 years ago (September 09, 2022)

Software Apache Kafka
Branch 2.8
Confluent
Platinum EoS
June 08, 2024
Confluent
Community EoS
June 08, 2023
Confluent
Standard EoS
June 08, 2023
First official release version 2.8.0
First official release date 5 years ago (April 14, 2021)
Release notes https://dlcdn.apache.org/kafka/2.8.0/RELEASE_NOTES.html
Source code https://github.com/apache/kafka/archive/refs/tags/2.8.2.tar.gz
Documentation https://kafka.apache.org/28/documentation.html
Apache Kafka 2.8 Releases View full list

What Is New in Apache Kafka 2.8

This release introduces KRaft, the Kafka Raft metadata mode, as a production-ready feature, alongside significant improvements to the consumer group protocol and a host of other enhancements.

Category Key Highlights
New Features KRaft (Kafka Raft) mode for metadata management, Static membership for consumer groups, Support for ZStandard compression in KRaft snapshots
Improvements Enhanced consumer group performance and stability, Better handling of large consumer groups, Various ZooKeeper to KRaft migration tools
Bug Fixes Numerous fixes across the core broker, clients, streams, and connect modules
Deprecations Older message format versions, Some ZooKeeper-specific configurations

Is KRaft ready for production in Kafka 2.8?

Yes, KRaft (Kafka Raft Metadata Mode) is now production-ready. This is the headline feature of the 2.8 release. It allows you to run Kafka without the operational overhead of a separate ZooKeeper ensemble, simplifying your deployment architecture significantly.

In practice, this means a single process to manage and a single type of node to monitor. You can start new clusters in KRaft mode and there are early tools to migrate existing clusters from ZooKeeper. This is a major step towards eventually removing the ZooKeeper dependency entirely.

What consumer group improvements were made?

The group coordinator was overhauled to handle much larger consumer groups with greater stability. The main improvement is static membership, which prevents unnecessary rebalances when consumers restart quickly.

Before, if a consumer crashed and restarted, it got a new member ID, triggering a full rebalance. With static membership, you can assign a persistent group.instance.id. The group coordinator recognizes the returning consumer and avoids the costly rebalance, which is a huge win for stateful applications like Kafka Streams.

Are there any new tools for operators?

Absolutely. A suite of new tools was added to support the KRaft ecosystem. The most notable is the MetadataShell tool, which lets you directly inspect and navigate the metadata log in a KRaft cluster.

This is the KRaft equivalent of using ZooKeeper shell commands to debug issues. It's invaluable for understanding what's happening in your metadata log and for troubleshooting problems without having to parse raw log files manually.

What about performance and stability fixes?

This release is packed with over a hundred bug fixes that improve overall robustness. Key areas include fixes for producer idempotency, transaction recovery, and better handling under heavy load for the group coordinator.

For Streams users, there are critical fixes for state store corruption during standby task restoration. These aren't flashy new features, but they directly impact the day-to-day reliability of your data pipelines and streaming applications.

FAQ

Should I use KRaft for my new production clusters?
Yes. For greenfield deployments, starting with KRaft mode is now the recommended path. It simplifies operations by eliminating ZooKeeper and is officially production-ready in this release.

Can I migrate my existing ZooKeeper-based cluster to KRaft?
Early migration tools are included, but the process is not yet fully seamless for large, complex clusters. For now, it's primarily advised for new clusters while the migration tooling matures.

How does static membership prevent consumer rebalances?
By assigning a static group.instance.id to each consumer, the broker recognizes it after a restart. Instead of treating it as a new member and rebalancing, it allows the consumer to reclaim its previous partition assignments.

What is the main benefit of the MetadataShell tool?
It provides a direct way to introspect the internal metadata log of a KRaft cluster, which is essential for debugging and understanding cluster state, similar to how zkCli.sh was used with ZooKeeper.

Are there any breaking changes in the 2.8 client APIs?
No, the client APIs remain compatible. The changes are largely additive (like new KRaft configurations) or internal. Applications using existing APIs should upgrade clients without requiring code changes.

Releases In Branch 2.8

Version Release date
2.8.2 3 years ago
(September 09, 2022)
2.8.1 4 years ago
(September 14, 2021)
2.8.0 5 years ago
(April 14, 2021)