Download

3.7.0 is the latest release. The current stable version is 3.7.0

You can verify your download by following these procedures and using these KEYS.

3.7.0

Kafka 3.7.0 includes a significant number of new features and fixes. For more information, please read our blog post and the detailed Release Notes.

3.6.1

Kafka 3.6.1 fixes 30 issues since the 3.6.0 release. For more information, please read the detailed Release Notes.

3.6.0

Kafka 3.6.0 includes a significant number of new features and fixes. For more information, please read our blog post and the detailed Release Notes.

3.5.2

Kafka 3.5.2 contains security fixes and bug fixes. For more information, please read our blog post and the detailed Release Notes.

3.5.1

Kafka 3.5.1 is a security patch release. It contains security fixes and regression fixes. For more information, please read our blog post and the detailed Release Notes.

3.5.0

Kafka 3.5.0 includes a significant number of new features and fixes. For more information, please read our blog post and the detailed Release Notes.

3.4.1

Kafka 3.4.1 fixes 58 issues since the 3.4.0 release. For more information, please read the detailed Release Notes

3.4.0

Kafka 3.4.0 includes a significant number of new features and fixes. For more information, please read our blog post and the detailed Release Notes.

3.3.2

Kafka 3.3.2 fixes 20 issues since the 3.3.1 release. For more information, please read the detailed Release Notes

3.3.1

Kafka 3.3.1 includes a number of significant new features. Here is a summary of some notable changes:

  • KIP-833: Mark KRaft as Production Ready
  • KIP-778: KRaft to KRaft upgrades
  • KIP-835: Monitor KRaft Controller Quorum health
  • KIP-794: Strictly Uniform Sticky Partitioner
  • KIP-834: Pause/resume KafkaStreams topologies
  • KIP-618: Exactly-Once support for source connectors

For more information, please read the detailed 3.3.1 and 3.3.0 Release Notes.

3.3.0

A significant bug was found in the 3.3.0 release after artifacts were pushed to Apache and Maven central but prior to the release announcement. As a result, the decision was made to not announce 3.3.0 and instead release 3.3.1 with the fix. It is recommended that 3.3.0 not be used.

3.2.3

Kafka 3.2.3 fixes CVE-2022-34917 and 7 other issues since the 3.2.1 release. For more information, please read the detailed Release Notes.

3.2.2

A significant bug was found in the 3.2.2 release after artifacts were pushed to Maven central but prior to the release announcement. As a result the decision was taken to not announce 3.2.2 and release 3.2.3 with the fix. It is recommended that 3.2.2 not be used.

3.2.1

Kafka 3.2.1 fixes 13 issues since the 3.2.0 release. For more information, please read the detailed Release Notes.

3.2.0

Kafka 3.2.0 includes a number of significant new features. Here is a summary of some notable changes:

  • log4j 1.x is replaced with reload4j
  • StandardAuthorizer for KRaft (KIP-801)
  • Send a hint to the partition leader to recover the partition (KIP-704)
  • Top-level error code field in DescribeLogDirsResponse (KIP-784)
  • kafka-console-producer writes headers and null values (KIP-798 and KIP-810)
  • JoinGroupRequest and LeaveGroupRequest have a reason attached (KIP-800)
  • Static membership protocol lets the leader skip assignment (KIP-814)
  • Rack-aware standby task assignment in Kafka Streams (KIP-708)
  • Interactive Query v2 (KIP-796, KIP-805, and KIP-806)
  • Connect APIs list all connector plugins and retrieve their configuration (KIP-769)
  • TimestampConverter SMT supports different unix time precisions (KIP-808)
  • Connect source tasks handle producer exceptions (KIP-779)

For more information, please read the detailed Release Notes.

3.1.2

Kafka 3.1.2 fixes CVE-2022-34917 and 4 other issues since the 3.1.1 release. For more information, please read the detailed Release Notes.

3.1.1

Kafka 3.1.1 fixes 29 issues since the 3.1.0 release. For more information, please read the detailed Release Notes.

3.1.0

Kafka 3.1.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Apache Kafka supports Java 17
  • The FetchRequest supports Topic IDs (KIP-516)
  • Extend SASL/OAUTHBEARER with support for OIDC (KIP-768)
  • Add broker count metrics (KIP-748)
  • Differentiate consistently metric latency measured in millis and nanos (KIP-773)
  • The eager rebalance protocol is deprecated (KAFKA-13439)
  • Add TaskId field to StreamsException (KIP-783)
  • Custom partitioners in foreign-key joins (KIP-775)
  • Fetch/findSessions queries with open endpoints for SessionStore/WindowStore (KIP-766)
  • Range queries with open endpoints (KIP-763)
  • Add total blocked time metric to Streams (KIP-761)
  • Add additional configuration to control MirrorMaker2 internal topics naming convention (KIP-690)

For more information, please read the detailed Release Notes.

3.0.2

Kafka 3.0.2 fixes CVE-2022-34917 and 10 other issues since the 3.0.1 release. For more information, please read the detailed Release Notes.

3.0.1

Kafka 3.0.1 fixes 29 issues since the 3.0.0 release. For more information, please read the detailed Release Notes.

3.0.0

Kafka 3.0.0 includes a number of significant new features. Here is a summary of some notable changes:

  • The deprecation of support for Java 8 and Scala 2.12
  • Kafka Raft support for snapshots of the metadata topic and other improvements in the self-managed quorum
  • Stronger delivery guarantees for the Kafka producer enabled by default
  • Deprecation of message formats v0 and v1
  • Optimizations in OffsetFetch and FindCoordinator requests
  • More flexible Mirror Maker 2 configuration and deprecation of Mirror Maker 1
  • Ability to restart a connector's tasks on a single call in Kafka Connect
  • Connector log contexts and connector client overrides are now enabled by default
  • Enhanced semantics for timestamp synchronization in Kafka Streams
  • Revamped public API for Stream's TaskId
  • Default serde becomes null in Kafka

For more information, please read the detailed Release Notes.

2.8.2

Kafka 2.8.2 fixes CVE-2022-34917 and 11 other issues since the 2.8.1 release. For more information, please read the detailed Release Notes.

2.8.1

Kafka 2.8.1 fixes 49 issues since the 2.8.0 release. For more information, please read the detailed Release Notes.

2.8.0

Kafka 2.8.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Early access of replace ZooKeeper with a self-managed quorum
  • Add Describe Cluster API
  • Support mutual TLS authentication on SASL_SSL listeners
  • JSON request/response debug logs
  • Limit broker connection creation rate
  • Topic identifiers
  • Expose task configurations in Connect REST API
  • Update Streams FSM to clarify ERROR state meaning
  • Extend StreamJoined to allow more store configs
  • More convenient TopologyTestDriver construtors
  • Introduce Kafka-Streams-specific uncaught exception handler
  • API to start and shut down Streams threads
  • Improve TimeWindowedDeserializer and TimeWindowedSerde to handle window size
  • Improve timeouts and retries in Kafka Streams

For more information, please read the detailed Release Notes.

2.7.2

Kafka 2.7.2 fixes 26 issues since the 2.7.1 release. For more information, please read the detailed Release Notes.

2.7.1

Kafka 2.7.1 fixes 45 issues since the 2.7.0 release. For more information, please read the detailed Release Notes.

2.7.0

Kafka 2.7.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Configurable TCP connection timeout and improve the initial metadata fetch
  • Enforce broker-wide and per-listener connection creation rate (KIP-612, part 1)
  • Throttle Create Topic, Create Partition and Delete Topic Operations
  • Add TRACE-level end-to-end latency metrics to Streams
  • Add Broker-side SCRAM Config API
  • Support PEM format for SSL certificates and private key
  • Add RocksDB Memory Consumption to RocksDB Metrics
  • Add Sliding-Window support for Aggregations

For more information, please read the detailed Release Notes.

2.6.3

Kafka 2.6.3 fixes 11 issues since the 2.6.2 release. For more information, please read the detailed Release Notes.

2.6.2

Kafka 2.6.2 fixes 35 issues since the 2.6.1 release. For more information, please read the detailed Release Notes.

2.6.1

Kafka 2.6.1 fixes 41 issues since the 2.6.0 release. For more information, please read the detailed Release Notes.

2.6.0

Kafka 2.6.0 includes a number of significant new features. Here is a summary of some notable changes:

  • TLSv1.3 has been enabled by default for Java 11 or newer
  • Significant performance improvements, especially when the broker has large numbers of partitions
  • Smooth scaling out of Kafka Streams applications
  • Kafka Streams support for emit on change
  • New metrics for better operational insight
  • Kafka Connect can automatically create topics for source connectors when configured to do so
  • Improved error reporting options for sink connectors in Kafka Connect
  • New Filter and conditional SMTs in Kafka Connect
  • The default value for the `client.dns.lookup` configuration is now `use_all_dns_ips`
  • Upgrade Zookeeper to 3.5.8

For more information, please read the detailed Release Notes.

2.5.1

Kafka 2.5.1 fixes 72 issues since the 2.5.0 release. For more information, please read the detailed Release Notes.

2.5.0

Kafka 2.5.0 includes a number of significant new features. Here is a summary of some notable changes:

  • TLS 1.3 support (1.2 is now the default)
  • Co-groups for Kafka Streams
  • Incremental rebalance for Kafka Consumer
  • New metrics for better operational insight
  • Upgrade Zookeeper to 3.5.7
  • Deprecate support for Scala 2.11

For more information, please read the detailed Release Notes.

2.4.1

For more information, please read the detailed Release Notes.

2.4.0

Kafka 2.4.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Allow consumers to fetch from closest replica.
  • Support for incremental cooperative rebalancing to the consumer rebalance protocol.
  • MirrorMaker 2.0 (MM2), a new multi-cluster, cross-datacenter replication engine.
  • New Java authorizer Interface.
  • Support for non-key joining in KTable.
  • Administrative API for replica reassignment.

For more information, please read the detailed Release Notes.

2.3.1

For more information, please read the detailed Release Notes.

2.3.0

Kafka 2.3.0 includes a number of significant new features. Here is a summary of some notable changes:

  • There have been several improvements to the Kafka Connect REST API.
  • Kafka Connect now supports incremental cooperative rebalancing.
  • Kafka Streams now supports an in-memory session store and window store.
  • The AdminClient now allows users to determine what operations they are authorized to perform on topics.
  • There is a new broker start time metric.
  • JMXTool can now connect to secured RMI ports.
  • An incremental AlterConfigs API has been added. The old AlterConfigs API has been deprecated.
  • We now track partitions which are under their min ISR count.
  • Consumers can now opt-out of automatic topic creation, even when it is enabled on the broker.
  • Kafka components can now use external configuration stores (KIP-421).
  • We have implemented improved replica fetcher behavior when errors are encountered.

For more information, please read the detailed Release Notes.

2.2.2

2.2.1

2.2.0

Kafka 2.2.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Added SSL support for custom principal name
  • Allow SASL connections to periodically re-authenticate
  • Command line tool bin/kafka-topics.sh adds AdminClient support
  • Improved consumer group management: default group.id is null instead of empty string
  • API improvement:
    • Producer: introduce close(Duration)
    • AdminClient: introduce close(Duration)
    • Kafka Streams: new flatTransform() operator in Streams DSL
    • KafkaStreams (and other classed) now implement AutoClosable to support try-with-resource
    • New Serdes and default method implementations
  • Kafka Streams exposed internal client.id via ThreadMetadata
  • Metric improvements: All -min, -avg and -max metrics will now output NaN as default value

For more information, please read the detailed Release Notes.

2.1.1

2.1.0

Kafka 2.1.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Java 11 support
  • Support for Zstandard, which achieves compression comparable to gzip with higher compression and especially decompression speeds (KIP-110)
  • Avoid expiring committed offsets for active consumer group (KIP-211)
  • Provide Intuitive User Timeouts in The Producer (KIP-91)
  • Kafka's replication protocol now supports improved fencing of zombies. Previously, under certain rare conditions, if a broker became partitioned from Zookeeper but not the rest of the cluster, then the logs of replicated partitions could diverge and cause data loss in the worst case (KIP-320).
  • Streams API improvements (KIP-319, KIP-321, KIP-330, KIP-353, KIP-356)
  • Admin script and admin client API improvements to simplify admin operation (KIP-231, KIP-308, KIP-322, KIP-324, KIP-338, KIP-340)
  • DNS handling improvements (KIP-235, KIP-302)

For more information, please read the detailed Release Notes.

2.0.1

2.0.0

Kafka 2.0.0 includes a number of significant new features. Here is a summary of some notable changes:

  • KIP-290 adds support for prefixed ACLs, simplifying access control management in large secure deployments. Bulk access to topics, consumer groups or transactional ids with a prefix can now be granted using a single rule. Access control for topic creation has also been improved to enable access to be granted to create specific topics or topics with a prefix.
  • KIP-255 adds a framework for authenticating to Kafka brokers using OAuth2 bearer tokens. The SASL/OAUTHBEARER implementation is customizable using callbacks for token retrieval and validation.
  • Host name verification is now enabled by default for SSL connections to ensure that the default SSL configuration is not susceptible to man-in-the-middle attacks. You can disable this verification if required.
  • You can now dynamically update SSL truststores without broker restart. You can also configure security for broker listeners in ZooKeeper before starting brokers, including SSL keystore and truststore passwords and JAAS configuration for SASL. With this new feature, you can store sensitive password configs in encrypted form in ZooKeeper rather than in cleartext in the broker properties file.
  • The replication protocol has been improved to avoid log divergence between leader and follower during fast leader failover. We have also improved resilience of brokers by reducing the memory footprint of message down-conversions. By using message chunking, both memory usage and memory reference time have been reduced to avoid OutOfMemory errors in brokers.
  • Kafka clients are now notified of throttling before any throttling is applied when quotas are enabled. This enables clients to distinguish between network errors and large throttle times when quotas are exceeded.
  • We have added a configuration option for Kafka consumer to avoid indefinite blocking in the consumer.
  • We have dropped support for Java 7 and removed the previously deprecated Scala producer and consumer.
  • Kafka Connect includes a number of improvements and features. KIP-298 enables you to control how errors in connectors, transformations and converters are handled by enabling automatic retries and controlling the number of errors that are tolerated before the connector is stopped. More contextual information can be included in the logs to help diagnose problems and problematic messages consumed by sink connectors can be sent to a dead letter queue rather than forcing the connector to stop.
  • KIP-297 adds a new extension point to move secrets out of connector configurations and integrate with any external key management system. The placeholders in connector configurations are only resolved before sending the configuration to the connector, ensuring that secrets are stored and managed securely in your preferred key management system and not exposed over the REST APIs or in log files.
  • We have added a thin Scala wrapper API for our Kafka Streams DSL, which provides better type inference and better type safety during compile time. Scala users can have less boilerplate in their code, notably regarding Serdes with new implicit Serdes.
  • Message headers are now supported in the Kafka Streams Processor API, allowing users to add and manipulate headers read from the source topics and propagate them to the sink topics.
  • Windowed aggregations performance in Kafka Streams has been largely improved (sometimes by an order of magnitude) thanks to the new single-key-fetch API.
  • We have further improved unit testibility of Kafka Streams with the kafka-streams-testutil artifact.

For more information, please read the detailed Release Notes.

1.1.1

1.1.0

Kafka 1.1.0 includes a number of significant new features. Here is a summary of some notable changes:

  • Kafka 1.1.0 includes significant improvements to the Kafka Controller that speed up controlled shutdown. ZooKeeper session expiration edge cases have also been fixed as part of this effort.
  • Controller improvements also enable more partitions to be supported on a single cluster. KIP-227 introduced incremental fetch requests, providing more efficient replication when the number of partitions is large.
  • KIP-113 added support for replica movement between log directories to enable data balancing with JBOD.
  • Some of the broker configuration options like SSL keystores can now be updated dynamically without restarting the broker. See KIP-226 for details and the full list of dynamic configs.
  • Delegation token based authentication (KIP-48) has been added to Kafka brokers to support large number of clients without overloading Kerberos KDCs or other authentication servers.
  • Several new features have been added to Kafka Connect, including header support (KIP-145), SSL and Kafka cluster identifiers in the Connect REST interface (KIP-208 and KIP-238), validation of connector names (KIP-212) and support for topic regex in sink connectors (KIP-215). Additionally, the default maximum heap size for Connect workers was increased to 2GB.
  • Several improvements have been added to the Kafka Streams API, including reducing repartition topic partitions footprint, customizable error handling for produce failures and enhanced resilience to broker unavailability. See KIPs 205, 210, 220, 224 and 239 for details.

For more information, please read the detailed Release Notes.

1.0.2

1.0.1

1.0.0

Kafka 1.0.0 is no mere bump of the version number. The Apache Kafka Project Management Committee has packed a number of valuable enhancements into the release. Here is a summary of a few of them:

  • Since its introduction in version 0.10, the Streams API has become hugely popular among Kafka users, including the likes of Pinterest, Rabobank, Zalando, and The New York Times. In 1.0, the the API continues to evolve at a healthy pace. To begin with, the builder API has been improved (KIP-120). A new API has been added to expose the state of active tasks at runtime (KIP-130). The new cogroup API makes it much easier to deal with partitioned aggregates with fewer StateStores and fewer moving parts in your code (KIP-150). Debuggability gets easier with enhancements to the print() and writeAsText() methods (KIP-160). And if that’s not enough, check out KIP-138 and KIP-161 too. For more on streams, check out the Apache Kafka Streams documentation, including some helpful new tutorial videos.
  • Operating Kafka at scale requires that the system remain observable, and to make that easier, we’ve made a number of improvements to metrics. These are too many to summarize without becoming tedious, but Connect metrics have been significantly improved (KIP-196), a litany of new health check metrics are now exposed (KIP-188), and we now have a global topic and partition count (KIP-168). Check out KIP-164 and KIP-187 for even more.
  • We now support Java 9, leading, among other things, to significantly faster TLS and CRC32C implementations. Over-the-wire encryption will be faster now, which will keep Kafka fast and compute costs low when encryption is enabled.
  • In keeping with the security theme, KIP-152 cleans up the error handling on Simple Authentication Security Layer (SASL) authentication attempts. Previously, some authentication error conditions were indistinguishable from broker failures and were not logged in a clear way. This is cleaner now.
  • Kafka can now tolerate disk failures better. Historically, JBOD storage configurations have not been recommended, but the architecture has nevertheless been tempting: after all, why not rely on Kafka’s own replication mechanism to protect against storage failure rather than using RAID? With KIP-112, Kafka now handles disk failure more gracefully. A single disk failure in a JBOD broker will not bring the entire broker down; rather, the broker will continue serving any log files that remain on functioning disks.
  • Since release 0.11.0, the idempotent producer (which is the producer used in the presence of a transaction, which of course is the producer we use for exactly-once processing) required max.in.flight.requests.per.connection to be equal to one. As anyone who has written or tested a wire protocol can attest, this put an upper bound on throughput. Thanks to KAFKA-5949, this can now be as large as five, relaxing the throughput constraint quite a bit.

For more information, please read the detailed Release Notes.

0.11.0.3

0.11.0.2

0.11.0.1

0.11.0.0

0.10.2.2

0.10.2.1

0.10.2.0

0.10.1.1

0.10.1.0

0.10.0.1

0.10.0.0

0.9.0.1

0.9.0.0

0.8.2.2

0.8.2.1

0.8.2.0

0.8.2-beta

0.8.1.1 Release

0.8.1 Release

0.8.0 Release

0.8.0 Beta1 Release

0.7.2 Release

0.7.1 Release

0.7.0 Release

You can download releases previous to 0.7.0-incubating here.