Latest in branch 3.9
3.9.2
Released 21 Feb 2026
(3 months ago)
SoftwareApache Kafka
Version3.9
Initial release3.9.0
26 Oct 2024
(1 year ago)
Latest release3.9.2
21 Feb 2026
(3 months ago)
Apache Kafka
Community EoS
TBD
(Supported)
Confluent
Community EoS
19 Feb 2027
(Ends in 8 months)
Confluent
Standard EoS
19 Feb 2027
(Ends in 8 months)
Confluent
Platinum EoS
19 Feb 2028
(Ends in 1 year, 8 months)
Release noteshttps://dlcdn.apache.org/kafka/3.9.0/RELEASE_NOTES.html
Source codehttps://github.com/apache/kafka/archive/refs/tags/3.9.2.tar.gz
Documentationhttps://kafka.apache.org/39/documentation.html
Apache Kafka 3.9 ReleasesView full list

What Is New in Apache Kafka 3.9

Apache Kafka 3.9.0 is the final major release supporting ZooKeeper mode and brings Tiered Storage to full production readiness, dynamic KRaft controller quorums, plus targeted improvements across Streams and Connect.

Category Key Changes
New Features Dynamic KRaft Quorums (KIP-853), Tiered Storage production ready (KIP-405), Health check endpoint for Connect (KIP-1017).
Improvements Tiered Storage disablement per topic (KIP-950), tiered storage quotas (KIP-956), expose earliest local and tiered offsets (KIP-1005), improved ZooKeeper to KRaft migration path.
Kafka Streams Configurable summary log interval (KIP-1049), new processing exception handler (KIP-1033).
Kafka Connect Better nullable value handling in transformations (KIP-1040), control offset translation in MirrorSourceConnector (KIP-1031).
Deprecations & Removals Last release with ZooKeeper support. Kafka 4.0 will require KRaft mode only.

Dynamic KRaft quorums simplify controller management

KIP-853 enables adding and removing controller nodes dynamically in KRaft mode without restarting the entire quorum.

You can manage membership through the kafka-metadata-quorum.sh tool or the AdminClient API.

In practice, this removes the previous static quorum configuration pain point and makes scaling controllers much smoother.

Tiered Storage reaches production readiness

Tiered Storage is now fully production-ready after multiple releases of hardening, allowing you to offload older data to cheaper remote storage like cloud object stores while keeping recent data on local disks.

New capabilities include dynamic disablement per topic, upload/download quotas, and visibility into earliest local versus tiered offsets.

The kafka-dump-log.sh tool also gained a flag to inspect remote log metadata, making debugging easier when tiered storage is active.

ZooKeeper migration gets its final improvements

Kafka 3.9.0 closes the remaining gaps in the ZooKeeper to KRaft migration tooling after testing on thousands of clusters.

This release serves as the recommended bridge before moving to Kafka 4.0, where ZooKeeper support will be completely dropped.

If you are still on ZooKeeper, plan your migration through 3.9 before upgrading further.

Kafka Streams adds better exception handling and logging control

KIP-1033 introduces a dedicated exception handler for errors that occur during record processing inside Streams topologies.

KIP-1049 lets you configure how frequently Streams logs its summary information via log.summary.interval.ms.

These changes give you more precise control over error recovery and reduce log noise in long-running applications.

Kafka Connect receives useful operational enhancements

KIP-1017 adds a simple REST health check endpoint so you can monitor Connect worker status more easily.

Transformations like InsertField and ExtractField now handle nullable values with additional configuration options.

You can also disable offset synchronization in MirrorSourceConnector to avoid unnecessary overhead in certain mirroring scenarios.

Observability improvements for tiered storage

New offsets exposed via KIP-1005 let you see exactly where local disk data ends and remote tiered storage begins for each partition.

This visibility helps when troubleshooting consumption lag or planning storage tier transitions.

Combined with the updated dump log tool, operators now have clearer insight into how data moves between local and remote tiers.

FAQ

Is this the last Kafka version that supports ZooKeeper?
Yes. Kafka 3.9.0 is the final major release with ZooKeeper mode. Kafka 4.0 will require KRaft only.

Is Tiered Storage ready for production use in 3.9?
Yes. After several iterations, Tiered Storage has reached production readiness in Kafka 3.9.0.

How do I add or remove controllers in KRaft mode now?
Use the dynamic quorum features from KIP-853 with the kafka-metadata-quorum.sh tool or AdminClient API. No static configuration changes or full restarts are needed.

What changed for exception handling in Kafka Streams 3.9?
KIP-1033 adds a new exception handler specifically for errors during record processing, giving you more options to handle or recover from processing failures.

Can I disable Tiered Storage on specific topics without restarting brokers?
Yes. KIP-950 allows dynamic disablement of tiered storage on a per-topic basis.

Releases In Branch 3.9

VersionRelease date
3.9.221 Feb 2026
(3 months ago)
3.9.112 May 2025
(1 year ago)
3.9.026 Oct 2024
(1 year ago)