Release Dates


These dates are goals and subject to change, but we expect to stay on the Time Based Release Plan unless unexpected critical issues come up. While the target release date is fixed at ~2w after code freeze, RCs will roll out as needed until the release vote passes.

The release manager is Matthias Sax .

Release Features

This is a list of key features/improvements/bugfixes that we can include with release notes:

How to Contribute

Before code freeze:

After code freeze:

Open Issues

Also feel free to refer to this release page for more details of the included tickets.

Planned KIP Content

Note: The planned content is not binding - final content will be based the features committed by branch-cutting date. See Kafka Improvement Proposals for the full list of KIPs.


KIPJIRAComponentCommitterComment
KIP-183 - Change PreferredReplicaLeaderElectionCommand to use AdminClient

Core, AdminClient
KIP-207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change

Core
KIP-289: Improve the default group id behavior in KafkaConsumer

Clients

KIP-291: Separating controller connections and requests from the data plane

Core

KIP-313: Add KStream.flatTransform and KStream.flatTransformValues

Streamspartially implemented in v2.2
KIP-367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)

Clients,AdminClient
KIP-368: Allow SASL Connections to Periodically Re-Authenticate

Broker,Clients
KIP-371: Add a configuration to build custom SSL principal name

Core

KIP-374: Add '--help' option to all available Kafka CLI commands

Tools

KIP-376: Implement AutoClosable on appropriate classes that want to be used in a try-with-resource statement

Streams

KIP-377: TopicCommand to use AdminClient

AdminClient
KIP-380: Detect outdated control requests and bounced brokers using broker generation

Core

KIP-386: Standardize on Min/Avg/Max metrics' default value

Clients,Streams

KIP-389: Introduce a configurable consumer group size limit

Core
KIP-393: Time windowed serde to properly deserialize changelog input topic

Streams

KIP-394: Require member.id for initial join group request

Clients

KIP-414: Expose Embedded ClientIds in Kafka Streams

Streams
KIP-420: Add Single Value Fetch in Session Stores

Streams

Postponed to subsequent release


KIPJIRAComponentCommitterComment
KIP-81: Bound Fetch memory usage in the consumer

Clients
KIP-149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner

Streams


partially implemented in v1.1
KIP-150 - Kafka-Streams Cogroup

Streams

KIP-258: Allow to Store Record Timestamps in RocksDB

Streams
KIP-313: Add KStream.flatTransform and KStream.flatTransformValues

Streamspartially implemented in v2.2
KIP-320: Allow fetchers to detect and handle log truncation

Corepartially implemented in v2.1
KIP-328: Ability to suppress updates for KTables

Streamspartially implemented in v2.1
KIP-331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde

Core, Streams
KIP-339: Create a new IncrementalAlterConfigs API

AminClient
KIP-341: Update Sticky Assignor's User Data Protocol

Clients
KIP-351: Add --under-min-isr option to describe topics command

Tools
KIP-359: Verify leader epoch in produce requests

Broker, Clients
KIP-361: Add Consumer Configuration to Disable Auto Topic Creation

Clients
KIP-379: Multiple Consumer Group Management

Tools