Latest in branch 3.5
3.5.2
Released 08 Dec 2023
(2 years ago)
SoftwareApache Kafka
Version3.5
Initial release3.5.0
05 Jun 2023
(3 years ago)
Latest release3.5.2
08 Dec 2023
(2 years ago)
Apache Kafka
Community EoS
29 Sep 2023
(Ended 2 years, 8 months ago)
Confluent
Community EoS
25 Aug 2025
(Ended 9 months ago)
Confluent
Standard EoS
25 Aug 2025
(Ended 9 months ago)
Confluent
Platinum EoS
25 Aug 2026
(Ends in 2 months)
Release noteshttps://dlcdn.apache.org/kafka/3.5.0/RELEASE_NOTES.html
Source codehttps://github.com/apache/kafka/archive/refs/tags/3.5.2.tar.gz
Documentationhttps://kafka.apache.org/35/documentation.html
Apache Kafka 3.5 ReleasesView full list

What Is New in Apache Kafka 3.5

Apache Kafka 3.5.0 focuses on rack awareness for consumers, versioned state stores in Streams, improved MirrorMaker 2 capabilities, and continued KRaft enhancements while officially deprecating ZooKeeper mode.

Category Key Changes
New Features Rack-aware consumer partition assignment (KIP-881), EnvVarConfigProvider (KIP-887), Versioned State Stores in Streams (KIP-889), Boolean Serde (KIP-907), first-class offset listing in Connect (KIP-875), full distributed mode for dedicated MirrorMaker 2 clusters (KIP-710).
Improvements Stale broker epoch protection in ISR (KIP-903), incremental config sync in MirrorMaker (KIP-894), exactly-once support for MirrorSourceConnector (KIP-618), extended ProductionExceptionHandler for serialization errors (KIP-399).
KRaft SCRAM support via kafka-storage.sh (KIP-900), ZooKeeper mode deprecated (removal in 4.0).
Kafka Streams Versioned state stores for better out-of-order join handling, Boolean Serde, serialization exception handling in ProductionExceptionHandler.
Kafka Connect / MirrorMaker Offset listing endpoints, distributed mode improvements for dedicated clusters, exactly-once semantics for MirrorSourceConnector.
Deprecations ZooKeeper mode (KIP-866 migration still early access).

Rack awareness comes to consumer partition assignment

KIP-881 completes rack-aware support for the built-in consumer assignors, allowing partitions to be spread across different racks for better fault tolerance.

This reduces the impact of rack-level failures on consumer availability and data locality.

In practice, enabling rack.id on brokers and consumers now gives you more resilient consumption patterns without custom assignors.

Versioned State Stores improve join accuracy in Kafka Streams

KIP-889 introduces versioned state stores that help handle out-of-order records more accurately during joins and aggregations.

You can now query historical versions of state, making time-sensitive processing more reliable.

This is particularly useful in event-driven applications where records can arrive late or out of sequence.

MirrorMaker 2 gains better scalability and exactly-once support

KIP-710 brings full distributed mode support to dedicated MirrorMaker 2 clusters, allowing multiple instances with automatic reconfiguration.

Exactly-once semantics are now available for the MirrorSourceConnector through KIP-618 implementation.

IncrementalAlterConfigs usage (KIP-894) also makes topic configuration syncing more efficient between clusters.

Kafka Connect adds first-class offset management

KIP-875 introduces REST API endpoints for listing connector offsets, marking the first step toward full offset management capabilities.

This lays the groundwork for safer offset resets and migrations in future releases.

You can now inspect offsets directly through the Connect REST interface without custom tooling.

KRaft tooling and safety improvements

KIP-900 adds SCRAM credential configuration support to the kafka-storage.sh tool for KRaft brokers.

KIP-903 prevents replicas with stale broker epochs from joining the ISR, reducing the risk of data loss after unclean shutdowns.

ZooKeeper mode is now deprecated, with full removal planned for Kafka 4.0.

Small but useful additions across the ecosystem

KIP-887 brings an EnvVarConfigProvider so you can pull configurations directly from environment variables.

KIP-399 extends the ProductionExceptionHandler in Streams to catch serialization exceptions.

A built-in Boolean Serde (KIP-907) completes primitive type support in the Streams public API.

FAQ

Is ZooKeeper still supported in Kafka 3.5?
Yes, but it is now officially deprecated. ZooKeeper mode will be removed in Kafka 4.0, so start planning your migration to KRaft.

What does rack-aware assignment change for consumers in 3.5?
KIP-881 updates the built-in assignors to respect rack.id, spreading partitions across racks to improve availability during rack failures.

Are versioned state stores production ready in Kafka Streams 3.5?
Yes. KIP-889 introduces versioned state stores to help handle out-of-order records more accurately in joins and other stateful operations.

Can I list connector offsets through the REST API in 3.5?
Yes. KIP-875 adds the first offset listing endpoints. Full update and delete capabilities will come in later releases.

What improved in MirrorMaker 2 with this release?
Dedicated clusters now fully support distributed mode (KIP-710), and the MirrorSourceConnector gains exactly-once semantics along with more efficient config syncing.

Releases In Branch 3.5

VersionRelease date
3.5.208 Dec 2023
(2 years ago)
3.5.114 Jul 2023
(2 years ago)
3.5.005 Jun 2023
(3 years ago)