Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

KIP round-up

Next KIP Number: 10101041

Use this number as the identifier for your KIP and increment this value.

...

907: Add Boolean Serde to public interface5889: Versioned State Stores

KIP (please keep this sorted by KIP number)

Release

KIP-

1000: List Client Metrics Configuration Resources

1023: Follower fetch from tiered offset

Accepted (, targeting 3.78.0)

KIP-

992: Proposal to introduce IQv2 Query Types: TimestampedKeyQuery and TimestampedRangeQuery

1022: Formatting and Updating Features

Accepted, targeting 3.83.7.0

KIP-988: Streams Standby Task Update Listener1019: Expose method to determine Metric Measurability

3.8.0Accepted (targeting 3.7.0)

KIP-9851013: Add reverseRange and reverseAll query over kv-store in IQv2Drop broker and tools support for Java 11 in Kafka 4.0 (deprecate in 3.7)

4.0.0

KIP-980: Allow creating connectors in a stopped state

TBD (targeting 3.7.0)

KIP-979: Allow independently stop KRaft processes

TBD (targeting 3.7.0)

1012: The need for a Kafka 3.8.x release

3.8.0

KIP-1005: Expose EarliestLocalOffset and TieredOffset

3.8

KIP-978: Allow dynamic reloading of certificates with different DN / SANs

3.7.0

KIP-977: Partition-level Throughput Metrics1004: Enforce tasks.max property in Kafka Connect

TBD (targeting 3.8.0)

KIP-976: Cluster-wide dynamic log adjustment for Kafka Connect1001: Add CurrentControllerId Metric 

3.7.0

KIP-975: Docker Image for Apache Kafka1000: List Client Metrics Configuration Resources

TBD (targeting 3.7.0)

KIP-

974: Docker Image for GraalVM based Native Kafka Broker

996: Pre-Vote

TBD (targeting 3.78.0/4.0.0)

KIP-

970: Deprecate and remove Connect's redundant task configurations endpoint

3.7.0 (deprecation)

4.0.0 (removal)

994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

TBD (targeting 3.8.0)

KIP-993: Allow restricting files accessed by File and Directory ConfigProviders

3.8.0
KIP-992: Proposal to introduce IQv2 Query Types: TimestampedKeyQuery and TimestampedRangeQueryKIP-968: Support single-key_multi-timestamp Interactive Queries (IQv2) for Versioned State Stores 

Accepted (targeting 3.7.0)

KIP-966: Eligible Leader Replicas988: Streams Standby Task Update Listener

3.7.0TBD

KIP-963: Additional metrics in Tiered Storage985: Add reverseRange and reverseAll query over kv-store in IQv2

Accepted (targeting 3.7.0)

KIP-960: Support single-key_single-timestamp Interactive Queries (IQv2) for Versioned State Stores980: Allow creating connectors in a stopped state

3.7.0

KIP-979: Allow independently stop KRaft processes

TBD

Accepted (targeting 3.7.0)

KIP-

959: Add BooleanConverter to Kafka Connect

978: Allow dynamic reloading of certificates with different DN / SANs

3.7.0

KIP-

954: expand default DSL store configuration to custom types

977: Partition-level Throughput Metrics

TBD (targeting 3.8.0)

3.7.0

KIP-951: Leader discovery optimisations for the client976: Cluster-wide dynamic log adjustment for Kafka Connect

3.7.0

KIP-949: Add flag to enable the usage of topic separator in MM2 DefaultReplicationPolicy975: Docker Image for Apache Kafka

3.7.0Adopted, targeting 3.6

KIP-942: Add Power(ppc64le) support974: Docker Image for GraalVM based Native Kafka Broker

TBD (targeting 3.7.0)

TBD

KIP-941: Range queries to accept null lower and upper bounds970: Deprecate and remove Connect's redundant task configurations endpoint

3.

6

7.0 (deprecation)

4.0.0 (removal)

KIP-938: Add more metrics for measuring KRaft performance968: Support single-key_multi-timestamp Interactive Queries (IQv2) for Versioned State Stores 

3.7.0

TBD

KIP-937: Improve Message Timestamp Validation966: Eligible Leader Replicas

TBD

3.6.0

KIP-927: Improve the kafka-metadata-quorum output963: Additional metrics in Tiered Storage

3.

6

7.0

KIP-925: Rack aware task assignment 962: Relax non-null key requirement in Kafka Streams3.6.0 (partially implemented) /

3.7.0

(completion – WIP)

KIP-923: Add A Grace Period to Stream Table Join960: Support single-key_single-timestamp Interactive Queries (IQv2) for Versioned State Stores

3.

6

7.0

KIP-919959: Allow AdminClient to Talk Directly with the KRaft Controller Quorum and add Controller RegistrationAdd BooleanConverter to Kafka Connect

3.7.0

KIP-917: Additional custom metadata for remote log segment956 Tiered Storage Quotas

Accepted, Targeting 3.8

3.6

.0

KIP-915: Txn and Group Coordinator Downgrade Foundation954: expand default DSL store configuration to custom types3.57.0

KIP-

914: DSL Processor Semantics for Versioned Stores

951: Leader discovery optimisations for the client

3.

5

7.0

KIP-911949: Add source tag to Mirror source metricflag to enable the usage of topic separator in MM2 DefaultReplicationPolicy

Adopted, targeting 3.6

3.5.0

KIP-909: DNS Resolution Failure Should Not Fail the Clients942: Add Power(ppc64le) support

TBD

KIP-941: Range queries to accept null lower and upper bounds3.6.0
KIP-906: Tools migration guidelines938: Add more metrics for measuring KRaft performanceTBD3.5.0
KIP-904: Kafka Streams - Guarantee subtractor is called before adder if key has not changed937: Improve Message Timestamp Validation3.56.0
KIP-903: Replicas with stale broker epoch should not be allowed to join the ISR927: Improve the kafka-metadata-quorum output3.56.0
KIP-902: Upgrade Zookeeper to 3.8.2925: Rack aware task assignment in Kafka Streams3.7.0 (completed)
3.6.0 (partially implemented)
KIP-900: KRaft kafka-storage.sh API additions to support SCRAM for Kafka Brokers923: Add A Grace Period to Stream Table Join3.56.0

KIP-

898: Modernize Connect plugin discovery

919: Allow AdminClient to Talk Directly with the KRaft Controller Quorum and add Controller Registration

3.67.0
KIP-896: Remove old client protocol API versions in Kafka 4.0

3.7.0 - new metric & request log attribute

4.0.0 - actual removal

917: Additional custom metadata for remote log segment3.6.0
KIP-915: Txn and Group Coordinator Downgrade FoundationKIP-894: Use incrementalAlterConfig for syncing topic configurations 3.5.0
KIP-893: The Kafka protocol should support nullable structs914: DSL Processor Semantics for Versioned Stores3.5.0
KIP-892: Transactional Semantics for StateStores911: Add source tag to Mirror source metric3.5.0TBD (targeting 3.7.0)
KIP-890: Transactions Server-Side Defense909: DNS Resolution Failure Should Not Fail the ClientsTBDTDB
KIP-907: Add Boolean Serde to public interface3.5.0
KIP-887: Add ConfigProvider to make use of environment variables906: Tools migration guidelines3.5.0
KIP-884: Add config to configure KafkaClientSupplier in Kafka Streams904: Kafka Streams - Guarantee subtractor is called before adder if key has not changed3.5.0
KIP-881: Rack-aware Partition Assignment for Kafka Consumers903: Replicas with stale broker epoch should not be allowed to join the ISR3.45.0 (protocol)
KIP-902: Upgrade Zookeeper to 3.8.23.56.0 (assignors)
KIP-878: Autoscaling for Stateless & Statically Partitioned Streams900: KRaft kafka-storage.sh API additions to support SCRAM for Kafka Brokers3.5.0TBD
KIP-876: Time based cluster metadata snapshots898: Modernize Connect plugin discovery3.46.0
KIP-875: First-class offsets support in Kafka Connect896: Remove old client protocol API versions in Kafka 4.0

3.5.0 (STOPPED state, offsets read API)

3.6.0 (offsets alter/reset APIs)

KIP-872: Add Serializer#serializeToByteBuffer() to reduce memory copyingAccepted

7.0 - new metric & request log attribute

4.0.0 - actual removal

KIP-894: Use incrementalAlterConfig for syncing topic configurations 3.5.0
KIP-893: The Kafka protocol should support nullable structsKIP-869: Improve Streams State Restoration Visibility3.5.0 (partially implemented) / TDB
KIP-868 Metadata Transactions892: Transactional Semantics for StateStores

TBD (targeting 3.

6

7.0)

KIP-866 ZooKeeper to KRaft Migration890: Transactions Server-Side Defensepart 1 - 3.73.4.0
KIP-865: Support --bootstrap-server in kafka-streams-application-reset3.4part 2 - targeting 3.8.0
KIP-863: Reduce CompletedFetch#parseRecord() memory copy889: Versioned State Stores3.5.0TBD
KIP-862: Self-join optimization for stream-stream joins887: Add ConfigProvider to make use of environment variables3.45.0
KIP-859884: Add Metadata Log Processing Error Related Metricsconfig to configure KafkaClientSupplier in Kafka Streams3.35.0
KIP-858: Handle JBOD broker disk failure in KRaft881: Rack-aware Partition Assignment for Kafka Consumers

3.

7

4.0 (protocol)

3.5.0 (assignors)

KIP-854 Separate configuration for producer ID expiry878: Autoscaling for Stateless & Statically Partitioned StreamsTBD
KIP-876: Time based cluster metadata snapshots3.4.0
KIP-852: Optimize calculation of size for log in remote tierAccepted. Targeting 3.6.0.
KIP-851: Add requireStable flag into ListConsumerGroupOffsetsOptions3.3.0
KIP-848: The Next Generation of the Consumer Rebalance ProtocolTBD
875: First-class offsets support in Kafka Connect

3.5.0 (STOPPED state, offsets read API)

3.6.0 (offsets alter/reset APIs)

KIP-872: Add Serializer#serializeToByteBuffer() to reduce memory copyingAccepted
KIP-869: Improve Streams State Restoration VisibilityKIP-847: Add ProducerIdCount metrics3.5.0 (partially implemented) / TDB
KIP-846: Source/sink node metrics for Consumed/Produced throughput in Streams868 Metadata Transactions3.36.0
KIP-844: Transactional State StoresTBDKIP-843: Adding addMetricIfAbsent method to Metrics866 ZooKeeper to KRaft Migration3.43.3.0
KIP-841: Fenced replicas should not be allowed to join the ISR in KRaft865: Support --bootstrap-server in kafka-streams-application-reset3.34.0
KIP-840: Config file option for MessageReader/MessageFormatter in ConsoleProducer/ConsoleConsumer863: Reduce CompletedFetch#parseRecord() memory copyTBD3.4.0
KIP-837: Allow MultiCasting a Result Record.862: Self-join optimization for stream-stream joins3.4.0
KIP-836: Expose replication information of the cluster metadata859: Add Metadata Log Processing Error Related Metrics3.3.0
KIP-835: Monitor KRaft Controller Quorum Health858: Handle JBOD broker disk failure in KRaft3.37.0
KIP-834: Pause / Resume KafkaStreams Topologies854 Separate configuration for producer ID expiry3.34.0
KIP-833853: Mark KRaft as Production ReadyKRaft Controller Membership ChangesAccepted. Targeting 3.38.0
KIP-831: Add metric for log recovery progress3.3.0852: Optimize calculation of size for log in remote tierAccepted. Targeting 3.6.0.
KIP-851: Add requireStable flag into ListConsumerGroupOffsetsOptions3.3KIP-830: Allow disabling JMX Reporter3.4.0
KIP-827: Expose logdirs total and usable space via Kafka API848: The Next Generation of the Consumer Rebalance ProtocolTBD3.3.0
KIP-825: introduce a new API to control when aggregated results are produced847: Add ProducerIdCount metrics3.35.0
KIP-824: Allowing dumping segmentlogs limiting the batches in the output846: Source/sink node metrics for Consumed/Produced throughput in Streams3.3.0
KIP-821: Connect Transforms support for nested structuresTBDKIP-820: Extend KStream process with new Processor API843: Adding addMetricIfAbsent method to Metrics3.3.0
KIP-815: Support max-timestamp in GetOffsetShell841: Fenced replicas should not be allowed to join the ISR in KRaft3.23.0
KIP-814: Static membership protocol should let the leader skip assignment840: Config file option for MessageReader/MessageFormatter in ConsoleProducer/ConsoleConsumer3.24.0
KIP-813: Shareable State Stores837: Allow MultiCasting a Result Record.3.4.0TBD
KIP-812: Introduce another form of the `KafkaStreams.close()` API that forces the member to leave the consumer group836: Expose replication information of the cluster metadata3.3.0
KIP-811: Add config repartition.purge.interval.ms to Kafka 835: Monitor KRaft Controller Quorum Health3.3.0
KIP-834: Pause / Resume KafkaStreams Topologies3.3 Streams3.2.0
KIP-810: Allow producing records with null values in Kafka Console Producer833: Mark KRaft as Production Ready3.23.0
KIP-808831: Add support for different unix precisions in TimestampConverter SMTmetric for log recovery progress3.23.0
KIP-806: Add session and window query over kv-store in IQv2830: Allow disabling JMX Reporter3.24.0
KIP-805: Add range and scan query over kv-store in IQv23.2.0KIP-801: Implement an Authorizer that stores metadata in __cluster_metadata827: Expose logdirs total and usable space via Kafka API3.33.2.0
KIP-800: Add reason to JoinGroupRequest and LeaveGroupRequest825: introduce a new API to control when aggregated results are produced3.23.0
KIP-798: Add possibility to write kafka headers in Kafka Console Producer824: Allowing dumping segmentlogs limiting the batches in the output3.23.0
KIP-797: Accept duplicate listener on port for IPv4/IPv63.6.0KIP-796: Interactive Query v2821: Connect Transforms support for nested structuresTBD
KIP-794: Strictly Uniform Sticky Partitioner820: Extend KStream process with new Processor API3.3.0
KIP-793: Allow sink connectors to be used with topic-mutating SMTs815: Support max-timestamp in GetOffsetShell3.62.0
KIP-792: Add "generation" field into consumer protocol814: Static membership protocol should let the leader skip assignment3.42.0
KIP-791: Add Record Metadata to StateStoreContext813: Shareable State StoresTBD
KIP-812: Introduce another form of the `KafkaStreams.close()` API that forces the member to leave the consumer group3.23.0
KIP-788: Allow configuring num.network.threads per listener811: Add config repartition.purge.interval.ms to Kafka Streams3.2.0

KIP-

787: MM2 manage Kafka resources with custom Admin implementation.

810: Allow producing records with null values in Kafka Console Producer

3.42.0
KIP-784: Add top-level error code field to DescribeLogDirsResponse808: Add support for different unix precisions in TimestampConverter SMT3.2.0
KIP-783806: Add TaskId field to StreamsExceptionsession and window query over kv-store in IQv23.12.0
KIP-779: Allow Source Tasks to Handle Producer Exceptions805: Add range and scan query over kv-store in IQv23.2.0
KIP-778: KRaft to KRaft Upgrades801: Implement an Authorizer that stores metadata in __cluster_metadata3.32.0
KIP-775: Custom partitioners in foreign key joins800: Add reason to JoinGroupRequest and LeaveGroupRequest3.12.0
KIP-773: Differentiate consistently metric latency measured in millis and nanos798: Add possibility to write kafka headers in Kafka Console Producer3.12.0
KIP 771: KRaft brokers without the "controller" role should not expose controller metrics-797: Accept duplicate listener on port for IPv4/IPv63.06.0
KIP-770: Replace "buffered.records.per.partition" with "input.buffer.max.bytes"3.4.0 (WIP)796: Interactive Query v2TBD
KIP-794: Strictly Uniform Sticky Partitioner3.3.0
KIP-793: Allow sink connectors to be used with topic-mutating SMTs3.6

KIP-769: Connect APIs to list all connector plugins and retrieve their configuration definitions

3.2.0
KIP-768: Extend SASL/OAUTHBEARER with Support for OIDC792: Add "generation" field into consumer protocol3.14.0
KIP-766: fetch/findSessions queries with open endpoints for SessionStore/WindowStore791: Add Record Metadata to StateStoreContext3.12.0
KIP-764: Configurable backlog size for creating Acceptor788: Allow configuring num.network.threads per listener3.2.0
KIP-763: Range Queries with Open Endpoints787: MM2 manage Kafka resources with custom Admin implementation.3.14.0
KIP-761784: Add Total Blocked Time Metric to Streamstop-level error code field to DescribeLogDirsResponse3.12.0
KIP-751: Drop support for Scala 2.12 in Kafka 4.0 (deprecate in 3.0)3.0.0 (deprecation notice), 4.0.0 (support withdrawal)
KIP-750: Drop support for Java 8 in Kafka 4.0 (deprecate in 3.0)3.0.0 (deprecation notice), 4.0.0 (support withdrawal)
KIP-748: Add Broker Count Metrics3.1.0
KIP-746: Revise KRaft Metadata Records3.0.0
KIP-745: Connect API to restart connector and tasks3.0.0
KIP-744: Migrate TaskMetadata and ThreadMetadata to an interface with internal implementation3.0.0
KIP-743: Remove config value 0.10.0-2.4 of Streams built-in metrics version config3.0.0
KIP-741: Change default serde to be null3.0.0
KIP-740: Clean up public API in TaskId3.0.0
KIP-738: Removal of Connect's internal converter properties3.0.0
KIP-735: Increase default consumer session timeout3.0.0
KIP-734: Improve AdminClient.listOffsets to return timestamp and offset for the record with the largest timestamp3.0.0
KIP-733: change Kafka Streams default replication factor config3.0.0
KIP-732: Deprecate eos-alpha and replace eos-beta with eos-v23.0.0
KIP-730: Producer ID generation in KRaft mode3.0.0
KIP-726: Make the "cooperative-sticky, range" as the default assignorWIP
KIP-725: Streamlining configurations for WindowedSerializer and WindowedDeserializer.3.0.0
KIP-724: Drop support for message formats v0 and v1

3.0.0 (deprecation)

4.0.0 (removal)

783: Add TaskId field to StreamsException3.1.0
KIP-779: Allow Source Tasks to Handle Producer Exceptions3.2.0
KIP-778: KRaft to KRaft Upgrades3.3.0
KIP-775: Custom partitioners in foreign key joins3.1.0
KIP-773: Differentiate consistently metric latency measured in millis and nanos3.1.0
KIP 771: KRaft brokers without the "controller" role should not expose controller metrics3.0.0
KIP-770: Replace "buffered.records.per.partition" with "input.buffer.max.bytes"3.4.0 (WIP)

KIP-769: Connect APIs to list all connector plugins and retrieve their configuration definitions

3.2.0
KIP-768: Extend SASL/OAUTHBEARER with Support for OIDC3.1.0
KIP-766: fetch/findSessions queries with open endpoints for SessionStore/WindowStore3.1.0
KIP-764: Configurable backlog size for creating Acceptor3.2.0
KIP-763: Range Queries with Open Endpoints3.1.0
KIP-761: Add Total Blocked Time Metric to Streams3.1.0
KIP-751: Drop support for Scala 2.12 in Kafka 4.0 (deprecate in 3.0)3.0.0 (deprecation notice), 4.0.0 (support withdrawal)
KIP-750: Drop support for Java 8 in Kafka 4.0 (deprecate in 3.0)3.0.0 (deprecation notice), 4.0.0 (support withdrawal)
KIP-748: Add Broker Count Metrics3.1.0
KIP-746: Revise KRaft Metadata RecordsKIP-722: Enable connector client overrides by default3.0.0
KIP-721: Enable connector log contexts in Connect Log4j configuration745: Connect API to restart connector and tasks3.0.0
KIP-720: Deprecate MirrorMaker v1744: Migrate TaskMetadata and ThreadMetadata to an interface with internal implementation3.0.0
KIP-719: Deprecate Log4J AppenderWIPKIP-716: Allow configuring the location of the offset-syncs topic with MirrorMaker2743: Remove config value 0.10.0-2.4 of Streams built-in metrics version config3.0.0
KIP-715: Expose Committed offset in streams741: Change default serde to be null3.0.0
KIP-714: Client metrics and observability740: Clean up public API in TaskId3.0.0WIP (targeting 3.7.0)
KIP-710: Full support for distributed mode in dedicated MirrorMaker 2.0 clusters738: Removal of Connect's internal converter properties3.50.0
KIP-709: Extend OffsetFetch requests to accept multiple group ids.735: Increase default consumer session timeout3.30.0
KIP-708: Rack aware StandbyTask assignment for Kafka Streams734: Improve AdminClient.listOffsets to return timestamp and offset for the record with the largest timestamp3.20.0
KIP-707: The future of KafkaFuture733: change Kafka Streams default replication factor config3.0.0
KIP-704: Send a hint to the partition leader to recover the partition3.2.0KIP-700: Add Describe Cluster API732: Deprecate eos-alpha and replace eos-beta with eos-v23.0.2.8.0
KIP-699: Update FindCoordinator to resolve multiple Coordinators at a time730: Producer ID generation in KRaft mode3.0.0
KIP-698: Add Explicit User Initialization of Broker-side State to Kafka StreamsWIP / inactive726: Make the "cooperative-sticky, range" as the default assignorWIP
KIP-725: Streamlining configurations for WindowedSerializer and WindowedDeserializer.3.0KIP-696: Update Streams FSM to clarify ERROR state meaning2.8.0
KIP-695: Further Improve Kafka Streams Timestamp Synchronization724: Drop support for message formats v0 and v1

3.0.0 (deprecation)

4.0.0 (removal)

KIP-691: Enhance Transactional Producer Exception Handling722: Enable connector client overrides by default3.0.0WIP / inactive
KIP-690: Add additional configuration to control MirrorMaker 2 internal topics naming convention721: Enable connector log contexts in Connect Log4j configuration3.10.0
KIP-679: Producer will enable the strongest delivery guarantee by default720: Deprecate MirrorMaker v13.0.0
KIP-689: Extend `StreamJoined` to allow more store configs2.8.0719: Deprecate Log4J AppenderWIP
KIP-716: Allow configuring the location of the offset-syncs topic with MirrorMaker23.0KIP-684 - Support mutual TLS authentication on SASL_SSL listeners2.8.0
KIP-680: TopologyTestDriver should not require a Properties argument715: Expose Committed offset in streams3.02.8.0
KIP-676: Respect logging hierarchy714: Client metrics and observability3.72.8.0
KIP-673: Emit JSONs with new auto-generated schema710: Full support for distributed mode in dedicated MirrorMaker 2.0 clusters3.52.8.0
KIP-671: Introduce Kafka Streams Specific Uncaught Exception Handler709: Extend OffsetFetch requests to accept multiple group ids.3.32.8.0
KIP-666: Add Instant-based methods to ReadOnlySessionStore708: Rack aware StandbyTask assignment for Kafka Streams3.02.0
KIP-663: API to Start and Shut Down Stream Threads707: The future of KafkaFuture3.02.8.0

KIP-

662: Throw Exception when Source Topics of a Streams App are Deleted

704: Send a hint to the partition leader to recover the partition

3.2.2.7.0
KIP-661: Expose task configurations in Connect REST 700: Add Describe Cluster API2.8.0

KIP-

659: Improve TimeWindowedDeserializer and TimeWindowedSerde to handle window size

699: Update FindCoordinator to resolve multiple Coordinators at a time

3.02.8.0
KIP-654: Aborted transaction with non-flushed data should throw a non-fatal exception2.7.0
KIP-653: Upgrade log4j to log4j23.2.0 (WIP)
KIP-651 - Support PEM format for SSL certificates and private key2.7.0
KIP-648 Renaming getter method for Interactive Queries2.7.0
KIP-641 An new java interface to replace 'kafka.common.MessageReader'3.5.0
KIP-635: GetOffsetShell: support for multiple topics and consumer configuration override3.0
KIP-633: Deprecate 24-hour Default Grace Period for Windowed Operations in Streams3.0.0
KIP-632: Add DirectoryConfigProvider2.7.0
698: Add Explicit User Initialization of Broker-side State to Kafka StreamsWIP / inactive
KIP-696: Update Streams FSM to clarify ERROR state meaning2.8.0
KIP-695: Further Improve Kafka Streams Timestamp Synchronization3.0.0
KIP-691: Enhance Transactional Producer Exception HandlingWIP / inactive
KIP-690: Add additional configuration to control MirrorMaker 2 internal topics naming convention3.1.0
KIP-679: Producer will enable the strongest delivery guarantee by default3.0.0
KIP-689: Extend `StreamJoined` to allow more store configs2.8.0
KIP-684 - Support mutual TLS authentication on SASL_SSL listeners2.8.0
KIP-680: TopologyTestDriver should not require a Properties argumentKIP-631: The Quorum-based Kafka Controller2.8.0
KIP-630: Kafka Raft Snapshot676: Respect logging hierarchy2.83.0.0
KIP-629: Use racially neutral terms in our codebase673: Emit JSONs with new auto-generated schema2.83.0.0
KIP-627: Expose Trogdor-specific JMX Metrics for Tasks and AgentsWIPKIP-626: Rename StreamsConfig config variable name671: Introduce Kafka Streams Specific Uncaught Exception Handler2.82.7.0
KIP-623666: Add "internal-topics" option to streams application reset toolInstant-based methods to ReadOnlySessionStore3.0.0
KIP-622: Add currentSystemTimeMs and currentStreamTimeMs to ProcessorContext663: API to Start and Shut Down Stream Threads2.83.0.0
KIP-621: Deprecate and replace DescribeLogDirsResult.all() and .values()662: Throw Exception when Source Topics of a Streams App are Deleted2.7.0

KIP-

620 Deprecate ConsumerConfig#addDeserializerToConfig and ProducerConfig#addSerializerToConfig

661: Expose task configurations in Connect REST API

2.78.0
KIP-618: Exactly-Once Support for Source Connectors

3.3.0 (almost everything)

3.2.0 (new admin client API)

KIP-617: Allow Kafka Streams State Stores to be iterated backwards2.7.0
659: Improve TimeWindowedDeserializer and TimeWindowedSerde to handle window size2.8.0
KIP-654: Aborted transaction with non-flushed data should throw a non-fatal exception2.7.0
KIP-653: Upgrade log4j to log4j23.2.0 (WIP)
KIP-651 - Support PEM format for SSL certificates and private keyKIP-616: Rename implicit Serdes instances in kafka-streams-scala2.7.0
KIP-614: Add Prefix Scan support for State Stores648 Renaming getter method for Interactive Queries2.87.0
KIP-613: Add end-to-end latency metrics to Streams2.6.0 (INFO node-level metrics), remainder 2.7.0 (TRACE store-level metrics) 
KIP-612: Ability to Limit Connection Creation Rate on Brokers2.7.0 / 2.8.0
KIP-610: Error Reporting in Sink Connectors2.6.0
KIP-608 - Expose Kafka Metrics in AuthorizerWIP
KIP-607: Add Metrics to Kafka Streams to Report Properties of RocksDB2.7.0
KIP-606: Add Metadata Context to MetricsReporter2.6.0
KIP-605: Expand Connect Worker Internal Topic Settings2.6.0
KIP-604: Remove ZooKeeper Flags from the Administrative Toolsone part in 2.6.0, most parts scheduled for 3.0
KIP-602: Change default value for client.dns.lookup2.6.0
KIP-601: Configurable socket connection timeout2.7.0
641 An new java interface to replace 'kafka.common.MessageReader'3.5.0
KIP-635: GetOffsetShell: support for multiple topics and consumer configuration override3.0
KIP-633: Deprecate 24-hour Default Grace Period for Windowed Operations in Streams3.0.0
KIP-632: Add DirectoryConfigProvider2.7.0
KIP-631: The Quorum-based Kafka Controller2.8.0
KIP-630: Kafka Raft Snapshot3.0.0
KIP-629: Use racially neutral terms in our codebase3.0.0

KIP-627: Expose Trogdor-specific JMX Metrics for Tasks and Agents

WIP
KIP-626: Rename StreamsConfig config variable name2.7.0
KIP-623: Add "internal-topics" option to streams application reset tool3.0.0
KIP-622: Add currentSystemTimeMs and currentStreamTimeMs to ProcessorContext3.0.0
KIP-621: Deprecate and replace DescribeLogDirsResult.all() and .values()KIP-599: Throttle Create Topic, Create Partition and Delete Topic Operations2.7.0
KIP-597: MirrorMaker2 internal topics Formatters620 Deprecate ConsumerConfig#addDeserializerToConfig and ProducerConfig#addSerializerToConfig2.7.0
KIP-594: Expose output topic names from TopologyTestDriver2.6.0KIP-591: Add Kafka Streams config to set default state store618: Exactly-Once Support for Source Connectors

3.3.0 (almost everything)

3.2.0 (

WIP

new admin client API)

KIP-590: Redirect Zookeeper Mutation Protocols to The Controller617: Allow Kafka Streams State Stores to be iterated backwards2.87.0 (WIP)
KIP-589 Add API to update Replica state in Controller616: Rename implicit Serdes instances in kafka-streams-scala2.87.0 (WIP)
KIP-588: Allow producers to recover gracefully from transaction timeouts614: Add Prefix Scan support for State Stores2.8.0 (WIP)
KIP-586: Deprecate commit records without record metadata613: Add end-to-end latency metrics to Streams2.6.0
KIP-585: Filter and Conditional SMTs2.6.0
(INFO node-level metrics), remainder 2.7.0 (TRACE store-level metrics) 
KIP-612: Ability to Limit Connection Creation Rate on BrokersKIP-584: Versioning scheme for features2.7.0 / 2.8.0
KIP-581: Value of optional null field which has default value610: Error Reporting in Sink Connectors2.63.5.0
KIP-580: Exponential Backoff for Kafka Clients608 - Expose Kafka Metrics in AuthorizerWIP
KIP-607: Add Metrics to Kafka Streams to Report Properties of RocksDB23.7.0
KIP-577: Allow HTTP Response Headers to be Configured for Kafka Connect606: Add Metadata Context to MetricsReporter2.6.0
KIP-574: CLI Dynamic Configuration with file input605: Expand Connect Worker Internal Topic Settings2.6.0
KIP-573: Enable TLSv1.3 by default604: Remove ZooKeeper Flags from the Administrative Toolsone part in 2.6.0, most parts scheduled for 3.0
KIP-572: Improve timeouts and retries in Kafka Streams2.8.0 (partially implemented in 2.7.0)602: Change default value for client.dns.lookup2.6.0
KIP-601: Configurable socket connection timeout2.7KIP-571: Add option to force remove members in StreamsResetter2.6.0
KIP-570: Add leader epoch in StopReplicaRequest599: Throttle Create Topic, Create Partition and Delete Topic Operations2.67.0
KIP-569: DescribeConfigsResponse - Update the schema to include additional metadata information of the field597: MirrorMaker2 internal topics Formatters2.67.0
KIP-568: Explicit rebalance triggering on the Consumer594: Expose output topic names from TopologyTestDriver2.6.0
KIP-562: Allow fetching a key from a single partition rather than iterating over all the stores on an instance2.5.0 
KIP-559: Make the Kafka Protocol Friendlier with L7 Proxies2.5.0
KIP-558: Track the set of actively used topics by connectors in Kafka Connect2.5.0
KIP-557: Add emit on change support for Kafka StreamsImplemented for KTable source nodes in 2.6.0, full implementation planned for subsequent releases.
KIP-555: Deprecate direct Zookeeper access in Kafka administrative tools2.5.0
591: Add Kafka Streams config to set default state store3.2.0 (WIP)
KIP-590: Redirect Zookeeper Mutation Protocols to The Controller2.8.0 (WIP)
KIP-589 Add API to update Replica state in Controller2.8.0 (WIP)
KIP-588: Allow producers to recover gracefully from transaction timeouts2.8.0 (WIP)
KIP-586: Deprecate commit records without record metadata2.6.0
KIP-585: Filter and Conditional SMTs2.6.0
KIP-584: Versioning scheme for featuresKIP-554: Add Broker-side SCRAM Config API2.7.0
KIP-553: Disable all SSL protocols except TLSV1.2 by default.581: Value of optional null field which has default value32.5.0
KIP-551: Expose disk read and write metrics580: Exponential Backoff for Kafka Clients3.72.6.0
KIP-546: Add Client Quota APIs to the Admin Client577: Allow HTTP Response Headers to be Configured for Kafka Connect2.6.0 (describe/alter), remainder pending (resolve)
KIP-545: support automated consumer offset sync across clusters in MM 2574: CLI Dynamic Configuration with file input2.6.0
KIP-573: Enable TLSv1.3 by default2.6.02.7.0
KIP-544: Make metrics exposed via JMX configurable2.5.0572: Improve timeouts and retries in Kafka Streams2.8.0 (partially implemented in 2.7.0)
KIP-571: Add option to force remove members in StreamsResetter2.6KIP-543: Expand ConfigCommand's non-ZK functionality2.5.0

KIP-

541: Create a fetch.max.bytes configuration for the broker

570: Add leader epoch in StopReplicaRequest

2.56.0
KIP-538: Add a metric tracking the number of open connections with a given SSL cipher type569: DescribeConfigsResponse - Update the schema to include additional metadata information of the field2.56.0
KIP-537: Increase default zookeeper session timeout568: Explicit rebalance triggering on the Consumer2.56.0
KIP-535562: Allow state stores to serve stale reads during rebalancefetching a key from a single partition rather than iterating over all the stores on an instance2.5.0
KIP-534: Reorganize checkpoint system in log cleaner to per partition 559: Make the Kafka Protocol Friendlier with L7 Proxies2.53.1.0
KIP-533: Add default api timeout to AdminClient558: Track the set of actively used topics by connectors in Kafka Connect2.5.0
KIP-532: Broker Consumer Lag metrics in size and timeWIP / inactive
KIP-531: Drop support for Scala 2.11 in Kafka 2.5Initial version in 2.5.0, remainder in later release (WIP)
557: Add emit on change support for Kafka StreamsImplemented for KTable source nodes in 2.6.0, full implementation planned for subsequent releases.
KIP-555: Deprecate direct Zookeeper access in Kafka administrative toolsKIP-530: Consider renaming 'UsePreviousTimeOnInvalidTimeStamp' class to 'UsePartitionTimeOnInvalidTimeStamp'2.5.0
KIP-528: Deprecate PartitionGrouper configuration and interface554: Add Broker-side SCRAM Config API2.47.0
KIP-527: Add VoidSerde to Serdes553: Disable all SSL protocols except TLSV1.2 by default.2.5.0
KIP-526: Reduce Producer Metadata Lookups for Large Number of Topics551: Expose disk read and write metrics2.56.0
KIP-525 - Return topic metadata and configs in CreateTopics response546: Add Client Quota APIs to the Admin Client2.4.0 6.0 (describe/alter), remainder pending (resolve)
KIP-524: Allow users to choose config source when describing configs545: support automated consumer offset sync across clusters in MM 2.02.57.0
KIP-523: Add KStream#toTable to the Streams DSL544: Make metrics exposed via JMX configurable2.5.0
KIP-521: Enable redirection of Connect's log4j messages to a file by default543: Expand ConfigCommand's non-ZK functionality2.45.0
KIP-519: Make SSL context/engine configuration extensible541: Create a fetch.max.bytes configuration for the broker2.65.0
KIP-518: Allow listing consumer groups per state538: Add a metric tracking the number of open connections with a given SSL cipher type2.65.0
KIP-517: Add consumer metrics to observe user poll behavior537: Increase default zookeeper session timeout2.45.0
KIP-516: Topic Identifiers & Topic Deletion State ImprovementsSome in 2.8.0, remainder WIP535: Allow state stores to serve stale reads during rebalance2.5.0
KIP-534: Reorganize checkpoint system in log cleaner to per partition 3.1KIP-515: Enable ZK client to use the new TLS supported authentication2.5.0
KIP-514533: Add a bounded flush() API to Kafka Producerdefault api timeout to AdminClient2.5.0

KIP-

511: Collect and Expose Client's Name and Version in the Brokers

532: Broker Consumer Lag metrics in size and time

WIP / inactive
KIP-531: Drop support for Scala 2.11 in Kafka 2.5Initial version in 2.4.0 (protocol) / 2.5.0, remainder in later release (metricWIP)
KIP-507: Securing Internal Connect REST Endpoints530: Consider renaming 'UsePreviousTimeOnInvalidTimeStamp' class to 'UsePartitionTimeOnInvalidTimeStamp'2.52.4.0
KIP-504 - Add new Java Authorizer Interface528: Deprecate PartitionGrouper configuration and interface2.4.0
KIP-503527: Add metric for number of topics marked for deletionVoidSerde to Serdes2.45.0
KIP-501: Avoid out-of-sync or offline partitions when follower fetch requests not processed in timeWIPKIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
KIP-499 - Unify connection name flag for command line tool2.5.0
526: Reduce Producer Metadata Lookups for Large Number of Topics2.5.0
KIP-525 - Return topic metadata and configs in CreateTopics response2.4.0 
KIP-524: Allow users to choose config source when describing configs2.5KIP-497: Add inter-broker API to alter ISR2.7.0
KIP-496523: Administrative API to delete consumer offsetsAdd KStream#toTable to the Streams DSL2.45.0
KIP-495: Dynamically Adjust Log Levels in Connect521: Enable redirection of Connect's log4j messages to a file by default2.4.0
KIP-492: Add java security providers in Kafka Security config519: Make SSL context/engine configuration extensible2.46.0
KIP-488: Clean up Sum,Count,Total Metrics518: Allow listing consumer groups per state2.46.0
KIP-484517: Expose metrics for group and transaction metadata loading durationAdd consumer metrics to observe user poll behavior2.4.0
KIP-482: The Kafka Protocol should Support Optional Tagged Fields2.4.0 
KIP-481: SerDe Improvements for Connect Decimal type in JSON2.4.0
516: Topic Identifiers & Topic Deletion State ImprovementsSome in 2.8.0, remainder WIP
KIP-515: Enable ZK client to use the new TLS supported authentication2.5KIP-480: Sticky Partitioner2.4.0
KIP-479514:Add StreamJoined config object to Joina bounded flush() API to Kafka Producer2.45.0
KIP-478 - Strongly typed Processor API511: Collect and Expose Client's Name and Version in the Brokers2.74.0 KIP-476: Add Java AdminClient Interface(protocol) / 2.45.0 (metric)
KIP-475: New Metrics to Measure Number of Tasks on a Connector507: Securing Internal Connect REST Endpoints2.4.0
KIP-474: To deprecate WindowStore#put(key, value)504 - Add new Java Authorizer Interface2.4.0
KIP-471: Expose RocksDB Metrics in Kafka Streams503: Add metric for number of topics marked for deletion2.4.0 (metrics blocked due to RocksDB version added in 3.2.0)
KIP-470: TopologyTestDriver test input and output usability improvements2.4.0 
KIP-467: Augment ProduceResponse error messaging for specific culprit records2.4.0 (partially implemented) / 2.5.0
501: Avoid out-of-sync or offline partitions when follower fetch requests not processed in timeWIP
KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
KIP-499 - Unify connection name flag for command line tool2.5KIP-466: Add support for List<T> serialization and deserialization3.0.0
KIP-465497: Add Consolidated Connector Endpoint to Connect REST APIinter-broker API to alter ISR2.37.0
KIP-464: Defaults for AdminClient#createTopic496: Administrative API to delete consumer offsets2.4.0
KIP-462: Use local thread id for KStreams495: Dynamically Adjust Log Levels in Connect2.34.0
KIP-461: Improve Replica Fetcher behavior at handling partition failure492: Add java security providers in Kafka Security config2.34.0
KIP-460: Admin Leader Election RPC488: Clean up Sum,Count,Total Metrics2.4.0
KIP-458: Connector Client Config Override Policy484: Expose metrics for group and transaction metadata loading duration2.34.0
KIP-455: Create an Administrative API for Replica Reassignment482: The Kafka Protocol should Support Optional Tagged Fields2.4.0 (API/broker logic)
KIP-481: SerDe Improvements for Connect Decimal type in JSON2.54.0 (tools changes)
KIP-454: Expansion of the ConnectClusterState interface480: Sticky Partitioner2.34.0
KIP-453479: Add close() method to RocksDBConfigSetterStreamJoined config object to Join2.34.0
KIP-450: Sliding Window Aggregations in the DSL-478 - Strongly typed Processor API2.7.0
KIP-449476: Add connector contexts to log messages in Connect workers Java AdminClient Interface2.34.0
KIP-447: Producer scalability for exactly once semantics475: New Metrics to Measure Number of Tasks on a Connector2.5.0  (broker, consumer, producer changes implemented) / 2.6.4.0
KIP-446: Add changelog topic configuration to KTable suppress474: To deprecate WindowStore#put(key, value)2.64.0
KIP-445: In-memory Session Store471: Expose RocksDB Metrics in Kafka Streams

2.4.0 (metrics blocked due to RocksDB version added in 3.2.0)

KIP-470: TopologyTestDriver test input and output usability improvements2.4.0 
KIP-467: Augment ProduceResponse error messaging for specific culprit records444: Augment metrics for Kafka Streams2.4.0 (partially implemented) / 2.5.0 (partially implemented) / 2.6.0
KIP-443: Return to default segment.ms and segment.index.bytes in Streams repartition topics466: Add support for List<T> serialization and deserialization3.02.3.0
KIP-442: Return to default max poll interval in Streams465: Add Consolidated Connector Endpoint to Connect REST API2.3.0
KIP-441464: Smooth Scaling Out for Kafka StreamsDefaults for AdminClient#createTopic2.6.0KIP-440: Extend Connect Converter to support headers2.4.0
KIP-437: Custom replacement for MaskField SMT462: Use local thread id for KStreams2.63.0
KIP-436: Add a metric indicating start time461: Improve Replica Fetcher behavior at handling partition failure2.3.0
KIP-434: Add Replica Fetcher and Log Cleaner Count Metrics460: Admin Leader Election RPC2.4.0
KIP-431: Support of printing additional ConsumerRecord fields in DefaultMessageFormatter2.7.0KIP-430 - Return Authorized Operations in Describe Responses458: Connector Client Config Override Policy2.2.3.0
KIP-429: Kafka Consumer Incremental Rebalance Protocol455: Create an Administrative API for Replica Reassignment2.4.0 KIP-428: Add in-memory window store2.3.0(API/broker logic)
2.5.0 (tools changes)
KIP-427: Add AtMinIsr topic partition category (new metric & TopicCommand option)454: Expansion of the ConnectClusterState interface2.3.0
KIP-425453: Add some Log4J Kafka Appender Properties for Producing to Secured Brokersclose() method to RocksDBConfigSetter2.3.0
KIP-421: Support resolving externalized secrets in AbstractConfig450: Sliding Window Aggregations in the DSL2.37.0
KIP-420449: Add Single Value Fetch in Session Storesconnector contexts to log messages in Connect workers 2.23.0
KIP-418: A method-chaining way to branch KStream447: Producer scalability for exactly once semantics2.5.0  (broker, consumer, producer changes implemented) / 2.62.8.0
KIP-417: Allow JmxTool to connect to a secured RMI port446: Add changelog topic configuration to KTable suppress2.36.0
KIP-415: Incremental Cooperative Rebalancing in Kafka Connect445: In-memory Session Store2.3.0
KIP-414: Expose Embedded ClientIds in 444: Augment metrics for Kafka Streams2.2.0
KIP-412: Extend Admin API to support dynamic application log levels2.4.0 
4.0 (partially implemented) / 2.5.0 (partially implemented) / 2.6.0

KIP-443: Return to default segment.ms and segment.index.bytes in Streams repartition topicsKIP-411: Make default Kafka Connect worker task client IDs distinct

2.3.0
KIP-405: Kafka Tiered StorageAccepted442: Return to default max poll interval in Streams2.KIP-402: Improve fairness in SocketServer processors2.2.0 (partially implemented) / 2.3.0
KIP-401: TransformerSupplier/ProcessorSupplier StateStore connecting441: Smooth Scaling Out for Kafka Streams2.6.0
KIP-399440: Extend ProductionExceptionHandler to cover serialization exceptionsConnect Converter to support headers2.43.5.0
KIP-396: Add Commit/List Offsets Operations to AdminClient437: Custom replacement for MaskField SMT2.56.0
KIP-394: Require member.id for initial join group request436: Add a metric indicating start time2.23.0
KIP-393: Time windowed serde to properly deserialize changelog input topic434: Add Replica Fetcher and Log Cleaner Count Metrics2.24.0
KIP-392: Allow consumers to fetch from closest replica431: Support of printing additional ConsumerRecord fields in DefaultMessageFormatter2.47.0
KIP-390: Support Compression LevelWIPKIP-389: Introduce a configurable consumer group size limit430 - Return Authorized Operations in Describe Responses2.23.0
KIP-386: Standardize on Min/Avg/Max metrics' default value429: Kafka Consumer Incremental Rebalance Protocol2.24.0
KIP-382: MirrorMaker 2428: Add in-memory window store2.3.0
KIP-427: Add AtMinIsr topic partition category (new metric & TopicCommand option)2.3.02.4.0
KIP-379: Multiple Consumer Group Management425: Add some Log4J Kafka Appender Properties for Producing to Secured Brokers2.43.0
KIP-380: Detect outdated control requests and bounced brokers using broker generation421: Support resolving externalized secrets in AbstractConfig2.23.0
KIP-377: TopicCommand to use AdminClient420: Add Single Value Fetch in Session Stores2.2.0
KIP-376: Implement AutoClosable on appropriate classes that want to be used in a try-with-resource statement418: A method-chaining way to branch KStream2.28.0
KIP-374: Add '--help' option to all available Kafka CLI commands417: Allow JmxTool to connect to a secured RMI port2.23.0
KIP-373: Allow users to create delegation tokens for other users415: Incremental Cooperative Rebalancing in Kafka Connect23.3.0
KIP-372: Naming Repartition Topics for Joins and Grouping414: Expose Embedded ClientIds in Kafka Streams2.12.0
KIP-371: Add a configuration to build custom SSL principal name412: Extend Admin API to support dynamic application log levels2.24.0

KIP-

369: Alternative Partitioner to Support "Always Round-Robin" Selection

411: Make default Kafka Connect worker task client IDs distinct

2.43.0
KIP 368: Allow SASL Connections to Periodically Re-Authenticate-405: Kafka Tiered StorageAccepted
KIP-402: Improve fairness in SocketServer processors2.2.0 (partially implemented) / 2.3.0
KIP-401: TransformerSupplier/ProcessorSupplier StateStore connecting2.6KIP-367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)2.2.0
KIP-366: Make FunctionConversions deprecated399: Extend ProductionExceptionHandler to cover serialization exceptions3.52.1.0
KIP-365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde396: Add Commit/List Offsets Operations to AdminClient2.15.0
KIPKIP-361: Add Consumer Configuration to Disable Auto Topic Creation394: Require member.id for initial join group request2.32.0
KIP-360: Improve reliability of idempotent/transactional producer393: Time windowed serde to properly deserialize changelog input topic2.4.0 (partially implemented) / 2.5.0
KIP-359: Verify leader epoch in produce requests392: Allow consumers to fetch from closest replica2.84.0 (WIP)
KIP-358: Migrate Streams API to Duration instead of long ms times390: Support Compression LevelWIP2.1.0
KIP-357: Add support to list ACLs per principal389: Introduce a configurable consumer group size limit2.12.0
KIP-356: Add withCachingDisabled() to StoreBuilder386: Standardize on Min/Avg/Max metrics' default value2.12.0
KIP-354: Add a Maximum Log Compaction Lag382: MirrorMaker 2.3.0KIP-353: Improve Kafka Streams Timestamp Synchronization2.14.0

KIP-

352: Distinguish URPs caused by reassignment

379: Multiple Consumer Group Management

2.54.0 
KIP-351: Add --under-min-isr option to describe topics command380: Detect outdated control requests and bounced brokers using broker generation2.32.0
KIP-346: Improve LogCleaner behavior on error377: TopicCommand to use AdminClient2.12.0
KIP-345: Introduce static membership protocol to reduce consumer rebalances376: Implement AutoClosable on appropriate classes that want to be used in a try-with-resource statement2.42.0
KIP-342 Add support for custom SASL extensions in OAuthBearer authentication374: Add '--help' option to all available Kafka CLI commands2.12.0
KIP-341: Update Sticky Assignor's User Data Protocol373: Allow users to create delegation tokens for other users32.3.0
KIP-340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file372: Naming Repartition Topics for Joins and Grouping2.1.0
KIP-339371: Create a new IncrementalAlterConfigs APIAdd a configuration to build custom SSL principal name2.32.0
KIP-338 Support to exclude the internal topics in kafka-topics.sh command369: Alternative Partitioner to Support "Always Round-Robin" Selection2.14.0
KIP -336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer368: Allow SASL Connections to Periodically Re-Authenticate2.12.0
KIP-332: Update AclCommand to use AdminClient API367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)2.2.0
KIP-366: Make FunctionConversions deprecated2.2.1.0
KIP-331 Add default implementation to close() and configure() for Serializer, Deserializer and 365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde2.31.0
KIPKIP-330361: Add retentionPeriod in SessionBytesStoreSupplierConsumer Configuration to Disable Auto Topic Creation2.13.0
KIP-328: Ability to suppress updates for KTables360: Improve reliability of idempotent/transactional producer2.14.0 (partially implemented; inactive)) / 2.5.0
KIP-324: Add method to get metrics() in AdminClient359: Verify leader epoch in produce requests2.18.0 (WIP)
KIP-322: Return new error code for DeleteTopics API when topic deletion disabled.358: Migrate Streams API to Duration instead of long ms times2.1.0
KIP-321357: Update TopologyDescription to better represent Source and Sink NodesAdd support to list ACLs per principal2.1.0
KIP-320: Allow fetchers to detect and handle log truncation356: Add withCachingDisabled() to StoreBuilder2.1.0 (partially implemented).  full implementation in 2.4
KIP-354: Add a Maximum Log Compaction Lag2.3.0
KIP-319: Replace segments with segmentInterval in WindowBytesStoreSupplier353: Improve Kafka Streams Timestamp Synchronization2.1.0
KIP-313: Add KStream.flatTransform and KStream.flatTransformValues 352: Distinguish URPs caused by reassignment2.2.0 (partially implemented5.0 
KIP-351: Add --under-min-isr option to describe topics command)/ 2.3.0
KIP-312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties346: Improve LogCleaner behavior on error2.1.0
KIP-309: Add toUpperCase support to sasl.kerberos.principal.to.local rule345: Introduce static membership protocol to reduce consumer rebalances2.4.0
KIP-308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides342 Add support for custom SASL extensions in OAuthBearer authentication2.1.0
KIP-307: Allow to define custom processor names with KStreams DSL341: Update Sticky Assignor's User Data Protocol2.3.0 (partially implemented) / 2.4.0
KIP-306: Configuration for Delaying Response to Failed Authentication340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file2.1.0
KIP-305: Add Connect primitive number converters339: Create a new IncrementalAlterConfigs API2.03.0
KIP-303: Add Dynamic Routing in Streams Sink338 Support to exclude the internal topics in kafka-topics.sh command2.01.0
KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer2.1.0
KIP-300: Add Windowed KTable API in StreamsBuildernot implemented; inactiveKIP-298: Error Handling in Connect332: Update AclCommand to use AdminClient API2.12.0.0
KIP-297: Externalizing Secrets for Connect Configurations331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde2.03.0
KIP-295 Add Streams Configuration Allowing for Optional Topology Optimization330: Add retentionPeriod in SessionBytesStoreSupplier2.01.0
KIP-294 - Enable TLS hostname verification by default328: Ability to suppress updates for KTables2.01.0 (partially implemented; inactive)
KIP-291: Separating controller connections and requests from the data plane324: Add method to get metrics() in AdminClient2.21.0
KIP-292: Add transformValues() method to KTable322: Return new error code for DeleteTopics API when topic deletion disabled.2.01.0
KIP-290: Support for Prefixed ACLs321: Update TopologyDescription to better represent Source and Sink Nodes2.01.0
KIP-289: Improve the default group id behavior in KafkaConsumer320: Allow fetchers to detect and handle log truncation2.1.0 (partially implemented).  full implementation in 2.4.2.2.0
KIP-285: Connect Rest Extension Plugin319: Replace segments with segmentInterval in WindowBytesStoreSupplier2.01.0
KIP-284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE313: Add KStream.flatTransform and KStream.flatTransformValues 

2.

0

2.0

KIP-283: Efficient Memory Usage for Down-Conversion

(partially implemented)

/ 2.3

2.0

.0

KIP-282: Add the listener name to the authentication context312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties2.01.0
KIP-281: ConsumerPerformance: Increase Polling Loop Timeout and Make It Reachable by the End User309: Add toUpperCase support to sasl.kerberos.principal.to.local rule2.04.0
KIP-280: Enhanced log compactionWIPKIP-279: Fix log divergence between leader and follower after fast leader fail over308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides2.12.0.0
KIP-278 - Add version option to Kafka's commands307: Allow to define custom processor names with KStreams DSL2.0.0KIP-277 - Fine Grained ACL for CreateTopics API2.03.0 (partially implemented) / 2.4.0
KIP-276 - Add StreamsConfig prefix for different consumers306: Configuration for Delaying Response to Failed Authentication2.01.0
KIP-274: Kafka Streams Skipped Records Metrics305: Add Connect primitive number converters2.0.0
KIP-272303: Add API version tag to broker's RequestsPerSec metricDynamic Routing in Streams Sink2.0.0
KIP-270 - A Scala Wrapper Library for Kafka Streams302 - Enable Kafka clients to use all DNS resolved IP addresses2.01.0
KIP-268: Simplify Kafka Streams Rebalance Metadata Upgrade300: Add Windowed KTable API in StreamsBuildernot implemented; inactive2.0.0
KIP-267: Add Processor Unit Test Support to Kafka Streams Test Utils298: Error Handling in Connect2.0.0
KIP-266: Fix consumer indefinite blocking behavior297: Externalizing Secrets for Connect Configurations2.0.0
KIP-265: Make Windowed Serde to public APIs295 Add Streams Configuration Allowing for Optional Topology Optimization2.0.0
KIP-261: Add Single Value Fetch in Window Stores294 - Enable TLS hostname verification by default2.0.0

KIP-

258: Allow to Store Record Timestamps in RocksDB

291: Separating controller connections and requests from the data plane

2.32.0 (partially implemented; inactive)
KIP-257 - Configurable Quota Management292: Add transformValues() method to KTable2.0.0
KIP-255: OAuth Authentication via SASL/OAUTHBEARER290: Support for Prefixed ACLs2.0.0
KIP-251: Allow timestamp manipulation in Processor API289: Improve the default group id behavior in KafkaConsumer2.02.0
KIP-249: Add Delegation Token Operations to KafkaAdminClient285: Connect Rest Extension Plugin2.0.0
KIP-247: Add public test utils for Kafka Streams284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE2.01.1.0
KIP-245: Use Properties instead of StreamsConfig in KafkaStreams constructor283: Efficient Memory Usage for Down-Conversion2.0.0
KIP-244282: Add Record Header support to Kafka Streams Processor APIthe listener name to the authentication context2.0.0
KIP-243: Make ProducerConfig and ConsumerConfig constructors public281: ConsumerPerformance: Increase Polling Loop Timeout and Make It Reachable by the End User2.01.1.0
KIP-239 Add queryableStoreName() to GlobalKTable280: Enhanced log compactionWIP1.1.0
KIP-238: Expose Kafka cluster ID in Connect REST API279: Fix log divergence between leader and follower after fast leader fail over2.01.1.0
KIP-237: More Controller Health Metrics278 - Add version option to Kafka's commands2.0.0
KIP-235: Add DNS alias support for secured connection277 - Fine Grained ACL for CreateTopics API2.10.0
KIP-233: Simplify StreamsBuilder#addGlobalStore-276 - Add StreamsConfig prefix for different consumers2.01.1.0
KIP-231: Improve the Required ACL of ListGroups API274: Kafka Streams Skipped Records Metrics2.10.0
KIP-229272: DeleteGroups APIAdd API version tag to broker's RequestsPerSec metric2.01.1.0
KIP-227 - Introduce Incremental FetchRequests to Increase Partition Scalability270 - A Scala Wrapper Library for Kafka Streams2.01.1.0
KIP-226 - Dynamic Broker Configuration268: Simplify Kafka Streams Rebalance Metadata Upgrade2.01.1.0
KIP-225 - Use tags for consumer “records.lag” metrics267: Add Processor Unit Test Support to Kafka Streams Test Utils2.01.1.0
KIP-224: Add configuration parameter `retries` to Streams API266: Fix consumer indefinite blocking behavior2.01.1.0
KIP-223 - Add per-topic min lead and per-partition lead metrics to KafkaConsumer265: Make Windowed Serde to public APIs2.0.0
KIP-222 - Add Consumer Group operations to Admin API261: Add Single Value Fetch in Window Stores2.0.0
KIP-221: Enhance DSL with Connecting Topic Creation and Repartition Hint258: Allow to Store Record Timestamps in RocksDB2.63.0 (partially implemented; inactive)
KIP-220: Add AdminClient into Kafka Streams' ClientSupplier257 - Configurable Quota Management2.01.1.0
KIP-219: Improve quota communication255: OAuth Authentication via SASL/OAUTHBEARER2.0.0
KIP-218: Make KafkaFuture.Function java 8 lambda compatible251: Allow timestamp manipulation in Processor API2.01.1.0
KIP-216: IQ should throw different exceptions for different errors249: Add Delegation Token Operations to KafkaAdminClient2.80.0 (WIP)
KIP-215247: Add topic regex support for Connect sinkspublic test utils for Kafka Streams1.1.0
KIP-214: Add zookeeper.max.in.flight.requests config to the broker245: Use Properties instead of StreamsConfig in KafkaStreams constructor2.01.1.0
KIP-213 Support non-key joining in KTable244: Add Record Header support to Kafka Streams Processor API2.40.0
KIP-212: Enforce set of legal characters for connector names243: Make ProducerConfig and ConsumerConfig constructors public1.1.0
KIP-211: Revise Expiration Semantics of Consumer Group Offsets2.1.0KIP-210 - Provide for custom error handling when Kafka Streams fails to produce239 Add queryableStoreName() to GlobalKTable1.1.0
KIP-208: Add SSL support to Kafka 238: Expose Kafka cluster ID in Connect REST interfaceAPI1.1.0
KIP-207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change237: More Controller Health Metrics2.20.0
KIP-206235: Add DNS alias support for UUID serialization and deserializationsecured connection2.1.0
KIP-205: Add all() and range() API to ReadOnlyWindowStore233: Simplify StreamsBuilder#addGlobalStore1.1.1.1.0
KIP-204 : Adding records deletion operation to the new Admin Client API231: Improve the Required ACL of ListGroups API21.1.0
KIP-203: Add toLowerCase support to sasl.kerberos.principal.to.local rule 229: DeleteGroups API1.1.0
KIP-202: Move merge() from StreamsBuilder to KStream227 - Introduce Incremental FetchRequests to Increase Partition Scalability1.01.0
KIP-198: Remove ZK dependency from Streams Reset Tool-226 - Dynamic Broker Configuration1.01.0
KIP-197 Connect REST API should include the connector type when describing a connector225 - Use tags for consumer “records.lag” metrics1.01.0
KIP-196224: Add metrics to Kafka Connect frameworkconfiguration parameter `retries` to Streams API1.01.0
KIP-195: AdminClient.createPartitions223 - Add per-topic min lead and per-partition lead metrics to KafkaConsumer21.0.0
KIP-192 : Provide cleaner semantics when idempotence is enabled222 - Add Consumer Group operations to Admin API21.0.0
KIP-191: KafkaConsumer.subscribe() overload that takes just Pattern221: Enhance DSL with Connecting Topic Creation and Repartition Hint2.61.0.0
KIP-190: Handle client-ids consistently between clients and brokers220: Add AdminClient into Kafka Streams' ClientSupplier1.01.0
KIP-189219: Improve principal builder interface and add support for SASLquota communication21.0.0
KIP-188 - Add new metrics to support health checks218: Make KafkaFuture.Function java 8 lambda compatible1.01.0
KIP-187 - Add cumulative count metric for all Kafka rate metrics1.0.0
KIP-186: Increase offsets retention default to 7 days2.0.0
KIP-183 - Change PreferredReplicaLeaderElectionCommand to use AdminClient2.2.0
KIP-182: Reduce Streams DSL overloads and allow easier use of custom storage engines1.0.0
KIP-180: Add a broker metric specifying the number of consumer group rebalances in progress1.1.0
KIP-177: Consumer perf tool should count rebalance time1.0.0
KIP-176: Remove deprecated new-consumer option for tools2.0.0
216: IQ should throw different exceptions for different errors2.8.0 (WIP)
KIP-215: Add topic regex support for Connect sinks1.1.0
KIP-214: Add zookeeper.max.in.flight.requests config to the broker1.1.0
KIP-213 Support non-key joining in KTable2.4.0
KIP-212: Enforce set of legal characters for connector names1.1.0
KIP-211: Revise Expiration Semantics of Consumer Group Offsets2.1.0
KIP-210 - Provide for custom error handling when Kafka Streams fails to produceKIP-175: Additional '--describe' views for ConsumerGroupCommand1.1.0
KIP-174 - Deprecate and remove internal converter configs in WorkerConfig208: Add SSL support to Kafka Connect REST interface1.12.0.0
KIP-173: Add prefix to StreamsConfig to enable setting default internal topic configs207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change2.21.0.0
KIP-171 - Extend Consumer Group Reset Offset for Stream Application206: Add support for UUID serialization and deserialization21.1.0
KIP-168205: Add GlobalTopicCount and GlobalPartitionCount metric per clusterall() and range() API to ReadOnlyWindowStore1.01.0
KIP-167: Add interface for the state store restoration process204 : Adding records deletion operation to the new Admin Client API1.01.0
KIP-164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics203: Add toLowerCase support to sasl.kerberos.principal.to.local rule 1.01.0
KIP-163: Lower the Minimum Required ACL Permission of OffsetFetch202: Move merge() from StreamsBuilder to KStream1.0.0
KIP-162: Enable topic deletion by default198: Remove ZK dependency from Streams Reset Tool1.0.0
KIP-161: streams deserialization exception handlers197 Connect REST API should include the connector type when describing a connector1.0.0
KIP-160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string196: Add metrics to Kafka Connect framework1.0.0
KIP-158: Kafka Connect should allow source connectors to set topic-specific settings for new topics195: AdminClient.createPartitions1.02.6.0
KIP-157 - Add consumer config options to streams reset tool192 : Provide cleaner semantics when idempotence is enabled1.0.0
KIP-156 Add option "dry run" to Streams application reset tool191: KafkaConsumer.subscribe() overload that takes just Pattern1.0.0
KIP-190: Handle client-ids consistently between clients and brokers10.11.0.0
KIP-155 - Add range scan for windowed state stores189: Improve principal builder interface and add support for SASL1.0.11.0.0
KIP-154 Add Kafka Connect configuration properties for creating internal topics188 - Add new metrics to support health checks10.11.0.0
KIP-153: Include only client traffic in BytesOutPerSec metric0.11.0.0KIP-152 - Improve diagnostics for SASL authentication failures-187 - Add cumulative count metric for all Kafka rate metrics1.0.0
KIP-151 Expose Connector type in REST API186: Increase offsets retention default to 7 days20.11.0.0
KIP-150 - Kafka-Streams Cogroup183 - Change PreferredReplicaLeaderElectionCommand to use AdminClient2.52.0
KIP-149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner182: Reduce Streams DSL overloads and allow easier use of custom storage engines1.10.0 (partially implemented; inactive)
KIP-146 - Classloading Isolation in Connect180: Add a broker metric specifying the number of consumer group rebalances in progress1.10.11.0.0
KIP-145 - Expose Record Headers in Kafka Connect177: Consumer perf tool should count rebalance time1.10.0
KIP-144: Exponential backoff for broker reconnect attempts176: Remove deprecated new-consumer option for tools2.0.11.0.0
KIP-143: Controller Health Metrics0.11.0.0175: Additional '--describe' views for ConsumerGroupCommand1.1.0
KIP-174 - Deprecate and remove internal converter configs in WorkerConfig2KIP-140: Add administrative RPCs for adding, deleting, and listing ACLs0.11.0.0
KIP-138: Change punctuate semantics173: Add prefix to StreamsConfig to enable setting default internal topic configs1.0.0
KIP-137: Enhance TopicCommand --describe to show topics marked for deletion171 - Extend Consumer Group Reset Offset for Stream Application1.1.0
KIP-168: Add GlobalTopicCount and GlobalPartitionCount metric per cluster10.11.0.0
KIP-136167: Add Listener name to SelectorMetrics tagsinterface for the state store restoration process10.11.0.0

KIP-

134: Delay initial consumer group rebalance

164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics

10.11.0.0

KIP-

133: Describe and Alter Configs Admin APIs

163: Lower the Minimum Required ACL Permission of OffsetFetch

1.0.11.0.0
KIP-131 - Add access to OffsetStorageReader from SourceConnector162: Enable topic deletion by default1.02.6.0
KIP-130: Expose states of active tasks to KafkaStreams public API161: streams deserialization exception handlers1.0.0
KIP-129: Streams Exactly-Once Semantics160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string1.0.11.0.0
KIP-128158: Add ByteArrayConverter for Kafka Connect should allow source connectors to set topic-specific settings for new topics2.6.00.11.0.0
KIP-126 - Allow KafkaProducer to split and resend oversized batches.157 - Add consumer config options to streams reset tool1.0.11.0.0
KIP-124 - Request rate quotas156 Add option "dry run" to Streams application reset tool0.11.0.0
KIP-123: Allow per stream/table timestamp extractor155 - Add range scan for windowed state stores0.11.0.0
KIP-122: Add Reset Consumer Group Offsets tooling154 Add Kafka Connect configuration properties for creating internal topics0.11.0.0
KIP-121: Add KStream peek method153: Include only client traffic in BytesOutPerSec metric0.11.0.0
KIP-120: Cleanup Kafka Streams builder API152 - Improve diagnostics for SASL authentication failures1.0.0
KIP-119: Drop Support for Scala 2.10 in Kafka 0.11151 Expose Connector type in REST API0.11.0.0
KIP-118: Drop Support for Java 7-150 - Kafka-Streams Cogroup2.05.0
KIP-117: Add a public AdminClient API for Kafka admin operations0.11.0.0149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner1.1.0 (partially implemented; inactive)
KIP-146 - Classloading Isolation in ConnectKIP-115: Enforce offsets.topic.replication.factor upon __consumer_offsets auto topic creation

0.11.0.0

KIP-114: KTable state stores and improved semantics145 - Expose Record Headers in Kafka Connect1.1.00.11.0.0
KIP-113: Support replicas movement between log directories144: Exponential backoff for broker reconnect attempts0.11.01.1.0
KIP-112: Handle disk failure for JBOD143: Controller Health Metrics0.111.0.0
KIP-110140: Add Codec for ZStandard Compressionadministrative RPCs for adding, deleting, and listing ACLs0.11.02.1.0
KIP-109: Old Consumer Deprecation138: Change punctuate semantics1.0.11.0.0
KIP-108: Create Topic Policy137: Enhance TopicCommand --describe to show topics marked for deletion0.1011.20.0
KIP-107136: Add deleteRecordsBefore() API in AdminClientListener name to SelectorMetrics tags0.11.0.0
KIP-106 - Change Default unclean.leader.election.enabled from True to False134: Delay initial consumer group rebalance0.11.0.0
KIP-105: Addition of Record Level for Sensors133: Describe and Alter Configs Admin APIs0.11.0.0
KIP-131 - Add access to OffsetStorageReader from SourceConnector2.6.0.10.2.0
KIP-104: Granular Sensors for Streams 130: Expose states of active tasks to KafkaStreams public API1.0.0.10.2.0
KIP-103: Separation of Internal and External traffic129: Streams Exactly-Once Semantics0.1011.20.0
KIP-102 - Add close with timeout for consumers128: Add ByteArrayConverter for Kafka Connect0.1011.20.0
KIP-101 - Alter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation126 - Allow KafkaProducer to split and resend oversized batches.0.11.0.0
KIP-100 - Relax Type constraints in Kafka Streams API124 - Request rate quotas0.1011.20.0
KIP-99: Add Global Tables to Kafka Streams123: Allow per stream/table timestamp extractor0.1011.20.0
KIP-98 - Exactly Once Delivery and Transactional Messaging122: Add Reset Consumer Group Offsets tooling0.11.0.0
KIP-97: Improved Kafka Client RPC Compatibility Policy121: Add KStream peek method

0.

10

11.

2

0.0

KIP-96 - Add per partition metrics for in-sync and assigned replica count0.10.2.0120: Cleanup Kafka Streams builder API1.0.0
KIP-119: Drop Support for Scala 2.10 in Kafka 0.110.11.0KIP-94 Session Windows0.10.2.0
KIP-93: Improve invalid timestamp handling in Kafka Streams118: Drop Support for Java 72.00.10.2.0
KIP-92 - Add per partition lag metrics to KafkaConsumer117: Add a public AdminClient API for Kafka admin operations0.1011.20.0
KIP-91 Provide Intuitive User Timeouts in The Producer115: Enforce offsets.topic.replication.factor upon __consumer_offsets auto topic creation0.11.02.1.0
KIP-90 - Remove zkClient dependency from Streams114: KTable state stores and improved semantics0.1011.20.0
KIP-89: Allow sink connectors to decouple flush and offset commit113: Support replicas movement between log directories1.10.10.2.0
KIP-88: OffsetFetch Protocol Update112: Handle disk failure for JBOD1.00.10.2.0
KIP-86: Configurable SASL callback handlers110: Add Codec for ZStandard Compression2.01.0
KIP-85: Dynamic JAAS configuration for Kafka clients109: Old Consumer Deprecation0.1011.20.0
KIP-84: Support SASL SCRAM mechanisms108: Create Topic Policy0.10.2.0
KIP-82 - Add Record Headers107: Add deleteRecordsBefore() API in AdminClient0.11.0.0

KIP-

81: Bound Fetch memory usage in the consumer
2.8.0 (WIP)KIP-79 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer

106 - Change Default unclean.leader.election.enabled from True to False

0.11.00.10.1.0
KIP-78: Cluster Id105: Addition of Record Level for Sensors0.10.12.0
KIP-77: Improve Kafka Streams Join Semantics104: Granular Sensors for Streams 0.10.2.0
KIP-75 - Add per-connector Converters103: Separation of Internal and External traffic0.10.12.0
KIP-74: Add Fetch Response Size Limit in Bytes102 - Add close with timeout for consumers0.10.12.0
KIP-73: Replication Quotas0.10.1.0KIP-72: Allow putting a bound on memory consumed by Incoming request 101 - Alter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation0.111.0.0
KIP-71: Enable log compaction and deletion to co-exist100 - Relax Type constraints in Kafka Streams API0.10.12.0
KIP-70: Revise Partition Assignment Semantics on New Consumer's Subscription Change99: Add Global Tables to Kafka Streams0.10.12.0
KIP-67: Queryable state for Kafka Streams-98 - Exactly Once Delivery and Transactional Messaging0.1011.10.0
KIP-66: Single Message Transforms for Kafka Connect97: Improved Kafka Client RPC Compatibility Policy0.10.2.0
KIP-96 - Add per partition metrics for in-sync and assigned replica count / 0.1110.02.0
KIP-65: Expose timestamps to Connect94 Session Windows0.10.12.0
KIP-63: Unify store and downstream caching in streams93: Improve invalid timestamp handling in Kafka Streams0.10.12.0
KIP-62: Allow consumer to send heartbeats from a background thread-92 - Add per partition lag metrics to KafkaConsumer0.10.12.0
KIP-60 - Make Java client classloading more flexible91 Provide Intuitive User Timeouts in The Producer20.10.1.0
KIP-58 - Make Log Compaction Point Configurable90 - Remove zkClient dependency from Streams0.10.12.0
KIP-57 - Interoperable LZ4 Framing89: Allow sink connectors to decouple flush and offset commit0.10.02.0
KIP-56: Allow cross origin HTTP requests on all HTTP methods88: OffsetFetch Protocol Update0.10.02.0
KIP-55: Secure Quotas for Authenticated Users86: Configurable SASL callback handlers2.0.0.10.1.0
KIP-54: Sticky Partition Assignment Strategy85: Dynamic JAAS configuration for Kafka clients0.1110.02.0
KIP-52: Connector Control APIs84: Support SASL SCRAM mechanisms0.10.02.0
KIP-51 - List Connectors REST API82 - Add Record Headers0.1011.0.0
KIP-48 Delegation token support for Kafka81: Bound Fetch memory usage in the consumer2.8.0 (WIP)1.1.0
KIP-45 - Standardize all client sequence interaction on j.u.Collection.79 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer0.10.01.0
KIP-43: Kafka SASL enhancements78: Cluster Id0.10.01.0
KIP-42: Add Producer and Consumer Interceptors77: Improve Kafka Streams Join Semantics0.10.02.0
KIP-41: Consumer Max Records-75 - Add per-connector Converters0.10.01.0
KIP-40: ListGroups and DescribeGroup74: Add Fetch Response Size Limit in Bytes0.910.01.0
KIP-3873: ZooKeeper AuthenticationReplication Quotas0.910.01.0
KIP-36 - Rack aware replica assignment72: Allow putting a bound on memory consumed by Incoming request 10.10.0.0
KIP-35 - Retrieving protocol version71: Enable log compaction and deletion to co-exist0.10.01.0
KIP-33 - Add a time based log index70: Revise Partition Assignment Semantics on New Consumer's Subscription Change0.10.1.0
KIP-32 - Add timestamps to Kafka message67: Queryable state for Kafka Streams0.10.01.0
KIP-31 - Move to relative offsets in compressed message sets66: Single Message Transforms for Kafka Connect00.10.02.0 KIP-28 - Add a processor client/ 0.1011.0.0
KIP-26 - Add Kafka Connect framework for data import/export65: Expose timestamps to Connect0.910.01.0
KIP-25 - System test improvements63: Unify store and downstream caching in streams0.910.01.0
KIP-22 - Expose a Partitioner interface in the new producer62: Allow consumer to send heartbeats from a background thread0.910.01.0
KIP-21 - Dynamic Configuration60 - Make Java client classloading more flexible0.910.01.0 (WIP)
KIP-20 Enable log preallocate to improve consume performance under windows and some old Linux file system58 - Make Log Compaction Point Configurable0.910.01.0
KIP-19 - Add a request timeout to NetworkClient57 - Interoperable LZ4 Framing0.910.0.0
KIP-16 - Automated Replica Lag Tuning56: Allow cross origin HTTP requests on all HTTP methods0.910.0.0
KIP-15 - Add a close method with a timeout in the producer55: Secure Quotas for Authenticated Users0.910.01.0
KIP-13 - Quota Design54: Sticky Partition Assignment Strategy0.911.0.0
KIP-12 - Kafka Sasl/Kerberos and SSL implementation52: Connector Control APIs0.910.0.0
KIP-11 - Kafka Authorizer design51 - List Connectors REST API0.910.0.0
KIP-8 - Add a flush method to the producer API48 Delegation token support for Kafka1.1.00.9.0.0
KIP-4 - Metadata Protocol Changes45 - Standardize all client sequence interaction on j.u.Collection.0.10.0.0
KIP-4 - Command line and centralized administrative operations43: Kafka SASL enhancements0.910.0.0,
KIP-42: Add Producer and Consumer Interceptors0.10.0.0
KIP-41: Consumer Max Records, 0.10.10.0
KIP-3 - Mirror Maker Enhancement40: ListGroups and DescribeGroup0.9.0.0
KIP-2 - Refactor brokers to allow listening on multiple ports and IPs38: ZooKeeper Authentication0.9.0.0
KIP-1 - Remove support of request.required.acks36 - Rack aware replica assignment0.910.0.0

...


KIPs under discussion

Please insert new rows in sorted order (ascending by KIP number). Please move the adopted/accepted KIPs to the "Adopted KIPs" table above.

Please insert new rows in sorted order (ascending by KIP number). Please move the adopted/accepted KIPs to the "Adopted KIPs" table above.

KIPComment
KIP-59: Proposal for a kafka broker commandSent emails to Dev discussion group. Work tracked under KAFKA-3663.
KIP-125: ZookeeperConsumerConnector to KafkaConsumer Migration and RollbackKIP-135 : Send of null key to a compacted topic should throw non-retriable error back to user
KIP 141 - ProducerRecord & SourceRecord: Add timestamp constructors
KIP-142: Add ListTopicsRequest to efficiently list all the topics in a cluster
KIP-148: Add a connect timeout for client
KIP-166 - Add a tool to make amounts of replicas and leaders on brokers balanced
KIP-169 - Lag-Aware Partition Assignment Strategy
KIP-178: Size-based log directory selection strategy


KIP-185: Make exactly once in order delivery the default producer setting


KIP-193: Add SchemaBuilder.from(Schema)
KIP-201: Rationalising Policy interfaces

KIP-209 - Connection String Support


KIP-217: Expose a timeout to allow an expired ZK session to be re-created
KIP-228 Negative record timestamp supportVoting in progress
KIP-234: add support for getting topic defaults from AdminClient
KIP-236: Interruptible Partition Reassignment Discussion
KIP-240: AdminClient.listReassignments() AdminClient.describeReassignments()
KIP-242: Mask password in Kafka Connect Rest API response
KIP-250 Add Support for Quorum-based Producer Acknowledgment
KIP-252 - Extend ACLs to allow filtering based on ip ranges and subnets
KIP-253: Support in-order message delivery with partition expansion Discussion
KIP-254: JsonConverter Exception Handeling
KIP-264: Add a consumer metric to record raw fetch sizeVoting in progress
KIP-271: Add NetworkClient redirectorDiscussion
KIP-273: Kafka to support using ETCD beside ZookeeperDiscussion
KIP-293 Add new metrics for consumer/replication fetch requestsVoting in progress
KIP-296: Add connector level configurability for producer/consumer client configs Discussion
KIP-301: Schema Inferencing for JsonConverterDiscussion
KIP-304: Connect runtime mode improvements for container platformsDiscussion
KIP-315: Stream Join Sticky AssignorDiscussion
KIP-316: Command-line overrides for ConnectDistributed worker propertiesDiscussion
KIP-317: Add end-to-end data encryption functionality to Apache KafkaDiscussion
KIP-325: Extend Consumer Group Command to Show Beginning OffsetsVoting in Progress345
KIP-333: Add faster mode of rebalancingDiscussion
KIP-334 - Include partitions in exceptions raised during consumer record deserialization/validation
KIP-348 Eliminate null from SourceTask#poll()
KIP-350: Allow kafka-topics.sh to take brokerid as parameter to show partitions associated with it
KIP-356: Add KafkaConsumer fetch-error-rate and fetch-error-total metricsDiscussion
KIP-363: Allow performance tools to print final results to output fileDiscussion
KIP-370: Remove Orphan PartitionsDiscussion
KIP-375: Kafka Clients - make Metadata#TOPIC_EXPIRY_MS configurableDiscussion
KIP-381: Connect: Tell about records that had their offsets flushed in callback

Voting in progress (restarted 18th January 2019, due to no votes in first attempt)

KIP-384: Add config for incompatible changes to persistent metadataDiscussion
KIP-385: Avoid throwing away prefetched dataDiscussion
KIP-387: Fair Message Consumption Across Partitions in KafkaConsumer

Discussion

KIP-388: Add observer interface to record request and responseDiscussion
KIP-395: Encypt-then-MAC Delegation token metadata
KIP-400: Improve exit status in case of errors in ConsoleProducerDiscussion
KIP-403: Increase ProducerPerformance precision by using nanoTimeDraft
KIP-406: GlobalStreamThread should honor custom offset policy.Blocked
KIP-407: Kafka Connect support override worker kafka api configuration with connector configuration that post by rest api

KIP-409: Allow creating under-replicated topics and partitions


KIP-410: Add metric for request handler thread pool utilization by request type

Discussion
KIP-416: Notify SourceTask of ACK'd offsets, metadataDiscussion
KIP-419: Safely notify Kafka Connect SourceTask is stoppedVoting in progress, JIRA exists with pull request
KIP-423: Add JoinReason to Consumer Join Group Protocol

Discussion

KIP-424: Allow suppression of intermediate events based on wall clock timeDiscussion
KIP-426: Persist Broker Id to ZookeeperDiscussion
KIP-435: Internal Partition Reassignment BatchingDiscussion
KIP-438: Expose task, connector IDs in Connect APIDiscussion
KIP-439: Cleanup built-in Store interfacesDiscussion
KIP-448: Add State Stores Unit Test Support to Kafka Streams Test UtilsDiscussion
KIP-452: Tool to view cluster statusDiscussion, JIRA exists
KIP-468: Avoid decompression of record when validate record at server in the scene of inPlaceAssignment .Under discussion
KIP-473: Enable KafkaLog4JAppender to use SASL Authentication Callback HandlersUnder Discussion 
KIP-477: Add PATCH method for connector config in Connect REST APIUnder Discussion, Voting
KIP-487: Automatic Topic Creation on ProducerUnder Discussion
KIP-489: Kafka Consumer Record Latency MetricUnder Discussion
KIP-490: New metric to count offsets expired without being consumed by a consumer groupUnder discussion
KIP-491: Preferred Leader Deprioritized List (Temporary Blacklist)Under discussion
KIP-494: Connect REST Endpoint to get Transformations (SMTs)
KIP-498: Add client-side configuration for maximum response size to protect against OOMSent emails to Dev discussion group. Work tracked under KAFKA-4090.
KIP-502: Connect SinkTask.put(...) to specify ArrayList<SinkRecord> in Signature
KIP-505: Add new public method to only update assignment metadata in consumerUnder discussion
KIP-506: Allow setting SCRAM password via Admin interfaceUnder discussion
KIP-508: Make Suppression State QueriableUnder discussion
KIP-509: Rebalance and restart ProducersUnder discussion
KIP-510: Metrics library upgradeUnder discussion
KIP-512: Adding headers to RecordMetaDataSent mail to dev discussion group
KIP-513: Distinguish between Key and Value serdes in scala wrapper library for kafka streamsSent mail to dev discussion group
KIP-536: Propagate broker start time to Admin APIUnder discussion
KIP-539: Add mechanism to flush records out in low volume suppression buffersUnder discussion.
KIP-540: Implement per key stream time trackingDraft (In Progress)
KIP-542: Partition Reassignment ThrottlingDraft
KIP-547: Extend ConsumerInterceptor to allow modification of Consumer CommitsUnder Discussion
KIP-548 Add Option to enforce rack-aware custom partition reassignment executionUnder Discussion
KIP-549: Surface Consumer's Metadata in KafkaAdminClient#describeConsumerGroupsUnder Discussion
KIP-550: Mechanism to Delete Stray Partitions on BrokerDraft
KIP-552: Suppress "unused config" warning

Under Discussion

KIP-560: Auto infer external topic partitions in stream reset tool

Under Discussion

KIP-561: Regex Support for ConsumerGroupCommand

Under Discussion
KIP-563: Add 'tail -n' feature for ConsoleConsumerUnder Discussion
KIP-564: Add new cached authorizer:change the dim of cacheUnder Discussion
KIP-565: Using AclCommand,avoid call the global method loadcache in SimpleAclAuthorizerUnder Discussion
KIP-566: Add rebalance callbacks to ConsumerInterceptorUnder Discussion
KIP-567: Kafka Cluster Audit

Under Discussion

KIP-575: build a Kafka-Exporter by JavaUnder Discussion
KIP-576: Support dynamic update of more broker configs related to replicationUnder Discussion
KIP-578: Add configuration to limit number of partitionsVoting
KIP-579: new exception on min.insync.replicas > replication.factorVoting in progress
KIP-582: Add a "continue" option for Kafka Connect error handlingUnder Discussion
KIP-583: add tag "partition" to BrokerTopicMetrics so as to observe the partition metrics on the same brokerUnder Discussion
KIP-587: Suppress detailed responses for handled exceptions in security-sensitive environmentsUnder Discussion
KIP-592: Replicate mirrormaker topics from earliestUnder Discussion
KIP-595: A Raft Protocol for the Metadata QuorumUnder Discussion
KIP-596: Safely abort Producer transactions during application shutdownUnder Discussion
KIP-598: Augment TopologyDescription with store and source / sink serde informationUnder Discussion
KIP-619: Add internal topic creation supportUnder Discussion
KIP-625: Richer encodings for integral-typed protocol fieldsUnder Discussion

KIP-628: ConsumerPerformance's multi-thread implementation

Sent email to Dev discussion group. Work tracked under KAFKA-10136.
KIP-636: Make RPC error codes and messages tagged fieldsUnder Discussion
KIP-637: Include min.insync.replicas in MetadataResponse to make Producer smarter in partitioning eventsDraft
KIP-639: Move nodeLevelSensor and storeLevelSensor methods from StreamsMetricsImpl to StreamsMetricsUnder Discussion
KIP-640: Add log compression analysis toolUnder Discussion
KIP-649: Dynamic client configurationUnder Discussion
KIP-655: Windowed Distinct Operation for Kafka Streams APIVoting in progress
KIP-656: MirrorMaker2 Exactly-once SemanticsDraft
KIP-665: Kafka Connect Hash SMT

Voting in progress

KIP-668: Expose REST endpoint to list converter pluginsUnder Discussion
KIP-669 Preserve Source Partition in Kafka Streams from contextDraft

KIP-674: API to Aggregate Metrics in Kafka Streams

Under Discussion

KIP-675: Convert a KTable to a KStream using the previous valueUnder Discussion
KIP-678: New Kafka Connect SMT for plainText => struct with RegexVoting
KIP-681: Rename master key in delegation token featureDraft
KIP-682: Connect TimestampConverter support for multiple fields and multiple input formatsUnder Discussion
KIP-683: Add recursive support to Connect Cast and ReplaceField transforms, and support for casting complex types to either a native or JSON stringUnder Discussion
KIP-685: Loosen permission for listing reassignmentsUnder Discussion
KIP-686: API to ensure Records policy on the brokerUnder Discussion
KIP-687: Automatic Reloading of Security StoreUnder Discussion
KIP-688: Support dynamic update of delete.topic.enable config

Under Discussion

KIP-692: Make AdminClient value object constructors publicUnder discussion

KIP-693: Client-side Circuit Breaker for Partition Write Errors

Voting in progress

KIP-694: Support Reducing Partitions for Topics

Under Discussion
KIP-697: Stricter parsing of addresses in configsUnder Discussion
KIP-701: Add --override option to bin/connect-distributed.shUnder Discussion
KIP-702: The control plane needs to force the validation of requests from the controllerUnder Discussion
KIP-703: Add a metric for reporting idle connections closed

Under Discussion

KIP-705: Selectively Disable Topology OptimizationsDraft
KIP-706: Add method "Producer#produce" to return CompletionStage instead of FutureUnder Discussion
KIP-711 Deprecate org.apache.kafka.streams.errors.BrokerNotFoundExceptionUnder Discussion
KIP-712: Shallow MirroringUnder Discussion
KIP-713: Validation of Enums in configurationUnder Discussion
KIP-718: Make KTable Join on Foreign key unopinionatedUnder Discussion
KIP-723: Add socket.tcp.no.delay property to Kafka ConfigUnder Discussion

KIP-727: Add --under-preferred-replica-partitions option to describe topics command

Under Discussion

KIP-729: Custom validation of records on the broker prior to log append

Under Discussion
KIP-731: Record Rate Limiting for Kafka ConnectUnder Discussion
KIP-736: Report the true end to end fetch latencyUnder Discussion
KIP-737: Add canTrackSource to ReplicationPolicyUnder Discussion
KIP-739: Block Less on KafkaProducer#sendUnder Discussion
KIP-749: Add --files and --file-separator options to the ConsoleProducerUnder Discussion
KIP-752: Support --bootstrap-server in ReplicaVerificationToolUnder Discussion
KIP-754: Make Scala case class's finalUnder Discussion
KIP-755: Add new AUTO_CREATE ACL for auto topic creationUnder Discussion
KIP-759: Unneeded repartition cancelingAccepted, targeting 3.7
KIP-760: Minimum value for segment.ms and segment.bytesUnder Discussion
KIP-762: Delete Committed Connect RecordsUnder Discussion
KIP-767: Connect Latency MetricsUnder Discussion
KIP-774: Deprecate public access to Admin client's *Result constructors

Under Discussion

KIP-777: Improved testability for Admin clientDraft
KIP-780: Support fine-grained compression optionsUnder Discussion
KIP-781: Improve MirrorMaker2's client configurationUnder Discussion
KIP-782: Expandable batch size in producerVoting
KIP-785: Automatic storage formattingUnder Discussion
KIP-786: Emit Metric Client Quota ValuesUnder Discussion 
KIP-789: Use localhost:9092 as default bootstrap-server/broker-list in client toolsKIP page WIP
KIP-799: Align behaviour for producer callbacks with documented behaviourUnder Discussion

KIP-802: Validation Support for Kafka Connect SMT Options

Under Discussion

KIP-803: Add Task ID and Connector Name to Connect Task ContextUnder Discussion
KIP-804: OfflinePartitionsCount Tagged by TopicUnder Discussion
KIP-807: Refactor KafkaStreams exposed metadata hierarchyUnder Discussion
KIP-809: Support live upgrades with dynamic addition/removal of modular topologiesKIP page WIP
KIP-816: Topology changes without local state resetUnder Discussion
KIP-817: Fix inconsistency in dynamic application log levelsUnder Discussion
KIP-819: Merge multiple KStreams in one operationUnder Discussion
KIP-822: Optimize the semantics of KafkaConsumer#pause to be consistent between the two RebalanceProtocolsUnder Discussion
KIP-823: Update Admin::describeConfigs to allow fetching specific configurationsKIP page WIP

KIP-826: Define platforms supported

Under Discussion
KIP-828: Add the corresponding validator to the configuration where the validator is missingUnder Discussion
KIP-829: (console-consumer) add print.topic propertyUnder Discussion
KIP-838 Simulate batching and compressionUnder Discussion

KIP-839: Provide builders for KafkaProducer/KafkaConsumer and KafkaStreams

Under Discussion
KIP-842: Add richer group offset reset mechanismsoffset reset mechanismsUnder Discussion
KIP-849: Expose logdirs total and usable space via kafka-log-dirs.shUnder Discussion
KIP-855: Add schema.namespace parameter to SetSchemaMetadata SMT in Kafka ConnectUnder Discussion
KIP-857: Streaming recursion in Kafka StreamsUnder Discussion

KIP-860: Add client-provided option to guard against replication factor change during partition reassignments

Under Discussion
KIP-864: Add End-To-End Latency Metrics to ConnectorsUnder Discussion
KIP-870: Retention policy based on record event timeUnder Discussion
KIP-873: ExceptionHandlingDeserializer, RetryDeserializer, PipeSerializer, PipeDeserializerUnder Discussion

KIP-877: Mechanism for plugins and connectors to register metrics

Under Discussion
KIP-849: Expose logdirs total and usable space via kafka-log-dirs.sh879: Multi-level Rack AwarenessUnder Discussion
KIP-853: KRaft Voter Changes880: X509 SAN based SPIFFE URI ACL within mTLS Client CertificatesUnder Discussion
KIP-855: Add schema.namespace parameter to SetSchemaMetadata SMT in Kafka Connect882: Kafka Connect REST API configuration validation timeout improvementsUnder Discussion

KIP-

856: KRaft Disk Failure Recovery

883: Add isDeleted flag when stopping a connector

Under DiscussionDraft
KIP-857: Streaming recursion in Kafka Streams885: Expose Broker's Name and Version to ClientsUnder Discussion
KIP-860886: Add client-provided option to guard against replication factor change during partition reassignmentsClient Producer and Consumer BuildersUnder Discussion

KIP-888: Batch describe ACLs and describe client quotas

Under Discussion

KIP-864: Add End-To-End Latency Metrics to Connectors891: Running multiple versions of a connectorUnder Discussion
KIP-870: Retention policy based on record event time895: Dynamically refresh partition count of __consumer_offsetsUnder Discussion
KIP-873: ExceptionHandlingDeserializer, RetryDeserializer, PipeSerializer, PipeDeserializer899: Allow clients to rebootstrap

Under Discussion

KIP-877: Mechanism for plugins and connectors to register metrics901: Add connectorDeleted flag when stopping tasks

Under Discussion

KIP-

879: Multi-level Rack Awareness

905: Broker interceptors

Under Discussion

KIP-

880: X509 SAN based SPIFFE URI ACL within mTLS Client Certificates

910: Update Source offsets for Source Connectors without producing records

Under Discussion

KIP-

882: Kafka Connect REST API configuration validation timeout improvements

912: Support decreasing send's block time without worrying about metadata's fetch 

Under Discussion

KIP-883: Add isDeleted flag when stopping a connector913: add new method to provide possibility for accelerate first record's sending

Under Discussion

KIP-

885: Expose Broker's Name and Version to Clients

916: MM2 distributed mode flow log context

Under Discussion
KIP-886: Add Client Producer and Consumer Builders917: Additional custom metadata for remote log segmentUnder Discussion

KIP-888: Batch describe ACLs and describe client quotas918: MM2 Topic And Group Listener

Under Discussion

KIP-

891: Running multiple versions of a connector

921: OpenJDK CRaC support

Under Discussion

KIP-

895: Dynamically refresh partition count of __consumer_offsets

922: Add the traffic metric of the partition dimension

Under Discussion

KIP-

899: Allow clients to rebootstrap

924: Introduce public config for Streams task assignor

Under Discussion

KIP-901: Add connectorDeleted flag when stopping tasks926: introducing acks=min.insync.replicas config

Under Discussion

KIP-905: Broker interceptors928: Making Kafka resilient to log directories becoming full

Under Discussion

KIP-910: Update Source offsets for Source Connectors without producing records930: Rename ambiguous Tiered Storage Metrics

Under Discussion

KIP-912: Support decreasing send's block time without worrying about metadata's fetch 931: Flag to ignore unused message attribute field

Under Discussion

KIP-913: add new method to provide possibility for accelerate first record's sending932: Queues for Kafka

Under Discussion

KIP-916: MM2 distributed mode flow log context933: Publish metrics when source connector fails to poll data

Under Discussion

KIP-

917: Additional custom metadata for remote log segment

934: Add DeleteTopicPolicy

Under Discussion

KIP-918: MM2 Topic And Group Listener935: Extend AlterConfigPolicy with existing configurations

Under Discussion

KIP-921: OpenJDK CRaC support936: Throttle number of active PIDs

Under Discussion

KIP-922: Add the traffic metric of the partition dimension939: Support Participation in 2PC

Under Discussion

KIP-924: Introduce public config for Streams task assignor940: Broker extension point for validating record contents at produce time

Under Discussion

KIP-926: introducing acks=min.insync.replicas config943: Add independent “offset.storage.segment.bytes” for connect-distributed.properties

Under Discussion

KIP-928: Making Kafka resilient to log directories becoming full

Under Discussion

945: Update threading model for ConsumerWIP
KIP-946: Modify exceptions thrown by Consumer APIsWIP

KIP-948: Allow custom prefix for internal topic names in Kafka StreamsKIP-930: Rename ambiguous Tiered Storage Metrics

Under Discussion

KIP-931: Flag to ignore unused message attribute field950: Tiered Storage Disablement

Under Discussion

KIP-932: Queues for Kafka952: Regenerate segment-aligned producer snapshots when upgrading to a Kafka version supporting Tiered Storage

Under Discussion

KIP-933: Publish metrics when source connector fails to poll data953: partition method to be overloaded to accept headers as well.

DraftUnder Discussion

KIP-934955: Add DeleteTopicPolicystream-table join on foreign key

Under Discussion

KIP-935: Extend AlterConfigPolicy with existing configurations964 Have visibility when produce requests become "async"   

Under discussionUnder Discussion

KIP-936: Throttle number of active PIDs965: Support disaster recovery between clusters by MirrorMaker

Under Discussion

KIP-939969: Support Participation in 2PC

Under Discussion

KIP-940: Broker extension point for validating record contents at produce time

Under Discussion

range Interactive Queries (IQv2) for Versioned State Stores 


KIP-971: Expose replication-record-lag MirrorMaker2 metric

KIP-972: Add the metric of the current running version of kafkaKIP-943: Add independent “offset.storage.segment.bytes” for connect-distributed.properties

Under Discussion

KIP-

945: Update threading model for Consumer

973: Expose per topic replication rate metrics

Under Discussion

WIP

KIP-

946: Modify exceptions thrown by Consumer APIs
WIP

KIP-948: Allow custom prefix for internal topic names in Kafka Streams974: Docker Image for GraalVM based Native Kafka Broker

Under Discussion

KIP-950: Tiered Storage Disablement981: Manage Connect topics with custom implementation of Admin

Under Discussion

KIP-952: Regenerate segment-aligned producer snapshots when upgrading to a Kafka version supporting Tiered Storage

Under Discussion

982: Access SslPrincipalMapper and kerberosShortNamer in Custom KafkaPrincipalBuilder

Voting in progress

(PR is reviewed by Contributors)

KIP-983: Full speed async processing during rebalanceKIP-953: partition method to be overloaded to accept headers as well.

Draft

KIP-955984: Add stream-table join on foreign keypluggable compression interface to Kafka

Under Discussion

KIP-956 Tiered Storage Quotas986: Cross-Cluster Replication

Draft

KIP-962: Relax non-null key requirement in Kafka Streams-987: Connect Static Assignments

Under Discussion

KIP-964 Have visibility when produce requests become "async"   989: RocksDB Iterator Metrics

Under DiscussionUnder discussion

KIP-965: Support disaster recovery between clusters by MirrorMaker991: Allow DropHeaders SMT to drop headers by wildcard/regexp

Under Discussion

KIP-969: Support range Interactive Queries (IQv2) for Versioned State Stores 995: Allow users to specify initial offsets while creating connectors

Under Discussion

KIP-

971: Expose replication-offset-lag MirrorMaker2 metric

Under Discussion

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-14112

997: update WindowRangeQuery and unify WindowKeyQuery and WindowRangeQuery

Under Discussion 
Vote

KIP-999: Server-side Consumer Lag Metrics

Draft

KIP-1002: Fetch remote segment indexes at once

KIP-972: Add the metric of the current running version of kafka

Under Discussion

KIP-

973: Expose per topic replication rate metrics

1003: Signal next segment when remote fetching

Under Discussion

KIP-

974: Docker Image for GraalVM based Native Kafka Broker

1006: Remove SecurityManager Support

DraftUnder Discussion

KIP-

981: Manage Connect topics with custom implementation of Admin

1008: ParKa - the Marriage of Parquet and Kafka

Under Discussion

KIP-

982: Access SslPrincipalMapper and kerberosShortNamer in Custom KafkaPrincipalBuilder

Voting in progress

(PR is reviewed by Contributors)

KIP-983: Full speed async processing during rebalance

Draft

1009: Add Broker-level Throttle Configurations

Under Discussion

KIP-1010: Topic Partition Quota

Under Discussion

KIP-1011: Use incrementalAlterConfigs when updating broker configs by kafka-configs.sh

KIP-984: Add pluggable compression interface to Kafka

Under Discussion

KIP-

986: Cross-Cluster Replication

Draft

1015: Limit number of ssl connections in brokers

Under Discussion

KIP-1016 Make MM2 heartbeats topic name configurableKIP-987: Connect Static Assignments

Under Discussion

KIP-989: RocksDB Iterator Metrics1017: Health check endpoint for Kafka Connect

Under Discussion

KIP-990: Capability to PAUSE Tasks on DeserializationException1018: Introduce max remote fetch timeout config for DelayedRemoteFetch requests

Under Discussion

KIP-9911021: Allow DropHeaders SMT to drop headers by wildcard/regexpto get last stable offset (LSO) in kafka-get-offsets.sh

Under Discussion

KIP-993: Allow restricting files accessed by File and Directory ConfigProviders1027: Add MockFixedKeyProcessorContext

Under DiscussionDraft

KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs1028: Docker Official Image for Apache Kafka

Under Discussion

KIP-996: Pre-Vote1031: Control offset translation in MirrorSourceConnector

acceptedUnder Discussion

KIP-

997: update WindowRangeQuery and unify WindowKeyQuery and WindowRangeQuery

Under Discussion 
Vote

KIP-999: Server-side Consumer Lag Metrics

Draft

1032: Upgrade to Jakarta and JavaEE 9 in Kafka 4.0

Under Discussion

KIP-1033: Add Kafka Streams exception handler for exceptions occurring during processing

KIP-1002: Fetch remote segment indexes at once

Under Discussion

KIP-

1003: Signal next segment when remote fetching

1034: Dead letter queue in Kafka Streams

Under Discussion

KIP-

1005: Expose EarliestLocalOffset and TieredOffset

1035: StateStore managed changelog offsets

Under Discussion

KIP-1036: Extend RecordDeserializationException exception

Under Discussion1006: Remove SecurityManager SupportDraft

KIP-1037: Allow WriteTxnMarkers API with Alter Cluster Permission

Under Discussion1007: Introduce Remote Storage Not Ready ExceptionDraft

KIP-

1008: ParKa - the Marriage of Parquet and Kafka

1038: Add Custom Error Handler to Producer

Under Discussion

KIP-

1009: Add Broker-level Throttle Configurations

1040: Improve handling of nullable values in InsertField/ExtractField transformations

Under Discussion


Go to link

...

KIPComment
KIP-5 - Broker Configuration ManagementSuperseded by KIP-21
KIP-7 - Security - IP Filtering
KIP-9 - SSL SupportAdopted via KAFKA-1690 but not via this KIP process
KIP-18 - JBOD SupportSuperseded by KIP-112 and KIP-113 
KIP-24 - Remove ISR information from TopicMetadataRequest and add broker level metadata request
KIP-29 - Add an IsrPropagateIntervalMs configuration to KafkaConfigNo longer need after KAFKA-2722

KIP-34 Add Partitioner Change Listener to Partitioner Interface for Multiple Use Case

Per feedback it is better do this parition() method and avoid Thread Coordination etc.
KIP-50 - Move Authorizer to o.a.k.common packageSuperseded by KIP-504
KIP-80: Kafka Rest Server
KIP-83 - Allow multiple SASL authenticated Java clients in a single JVM processAfter KIP-85, no interface changes, reduced to KAFKA-4180
KIP-111: Kafka should preserve the Principal generated by the PrincipalBuilder while processing the request received on socket channel, on the broker.Covered by KIP-189
KIP-116: Add State Store Checkpoint Interval ConfigurationCurrently not needed as checkpointing can be done on commit interval.
KIP-127: Pluggable JAAS LoginModule configuration for SSLSimilar functionality can be implemented using a custom PrincipalBuilder.
KIP-132: Augment KStream.print to allow extra parameters in the printed string

Duplicated by KIP-160

KIP-147: Add missing type parameters to StateStoreSupplier factories and KGroupedStream/Table methodsCovered by KIP-182
KIP-165: Extend Interactive Queries for return latest update timestamp per keyCovered by KIP-258
KIP-170: Enhanced TopicCreatePolicy and introduction of TopicDeletePolicySuperseded by KIP-201: Rationalising Policy interfaces
KIP 172: Add regular-expression topic support for sink connectorSuperseded by KIP-215: Add topic regex support for Connect sinks
KIP-179: Change ReassignPartitionsCommand to use AdminClient
KIP-184: Rename LogCleaner and related classes to LogCompactorA lot of configuration change will cause more trouble and doesn't seems to be worth it
KIP-199: Add Kafka Connect offset toolSuperseded by KIP-875: First-class offsets support in Kafka Connect
KIP 230: Name Windowing JoinsCovered by KIP-372: Naming Repartition Topics for Joins and Grouping
KIP-232: Detect outdated metadata using per-partition leaderEpoch fieldMerged into KIP-320: Allow fetchers to detect and handle log truncation
KIP-246: Connect producers and consumers should inherit worker configsWithdrawn because proposal could not be made backward compatible with existing behavior
KIP-248 - Create New ConfigCommand That Uses The New AdminClientDiscarded by author as it's partly covered in KIP-339 and KIP-422
KIP-259: Improve Streams DSL Timestamp Propagation SemanticsChange did not require a KIP.
KIP-262: Metadata should include number of state stores for taskRejected since metadata is no longer required.
KIP-263: Allow broker to skip sanity check of inactive segments on broker startupWithdrawn because the solution we agreed on does not require interface change
KIP-275 - Indicate "isClosing" in the SinkTaskContext
KIP-286: producer.send() should not block on metadata updateWithdrawn because the benefit of not having to wait for metadata is probably not worth the complexity added in producer.
KIP-288: [DISCARDED] Consumer.poll() timeout semantic change and new waitForAssignment methodDiscarded in deference to KIP-266
KIP-310: Add a Kafka Source Connector to Kafka ConnectWithdrawn in favor of KIP-382.
KIP-327: Add describe all topics API to AdminClientWithdrawn in-favor of filter support in Metadata API and KIP-142
KIP-344: The auto-generated client id should be passed to MetricsReporterBug fix so KIP not needed
KIP-347: Enable batching in FindCoordinatorRequestReplaced by KIP-699
KIP-364: Remove implicit Materialized, Consumed and ProducedSubsumed by KIP-365
KIP-383:  Pluggable interface for SSL FactoryReplaced by KIP-519
KIP-391: Allow Producing with Offsets for Cluster ReplicationNot enough interest in favour.
KIP-398: Support reading trust store from classpath

Not enough interest in favour. Can be implemented with mechanism in 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-8191

KIP-404: Add Kafka Connect configuration parameter for disabling WADL output on OPTIONS request

Discarded, reported as a bug by

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-7759

KIP-432: Additional Broker-Side Opt-In for Default, Unsecure SASL/OAUTHBEARER Implementation

A "security sanity check tool" is a more generic and appropriate solution.
KIP-451: Make TopologyTestDriver output iterable

Discarded in favor of KIP-456

KIP-456: Helper classes to make it simpler to write test logic with TopologyTestDriverDiscarded in favor of KIP-470
KIP-472: Add header to RecordContext/ProducerRecordDiscarded due to change being far more complex than necessary for a simple bug
KIP-485: Make topic optional when using through() operations in DSLMoved to KIP-221
KIP-486: Support custom way to load KeyStore and TrustStoreDiscarded in favor of KIP-519
KIP-522: Update BrokerApiVersionsCommand to use AdminClientDiscarded as this KIP is likely to be misused
KIP-593: Enable --if-exists and --if-not-exists for AdminClient in TopicCommandSuperseded by KIP-604
KIP-615: add ConstrainedCooperativeStickyAssignorDiscarded in favor of modifying existing assignor
KIP-638: Deprecate DescribeLogDirsResponse.[LogDirInfo, ReplicaInfo]

Duplication of KIP-621

KIP-660: Pluggable ReplicaPlacer


KIP-667: Remove deprecated methods from ReadOnlyWindowStoreNo KIP needed
KIP-672: Introduce Kafka Streams Specific Uncaught Exception Handler

Combined with KIP-671

[DISCARD] KIP-658 Deprecate all setters of Headers
KIP-818: Introduce cache-size-bytes-total Task Level MetricDecided to add the new metric in KIP-770.
KIP-717: Deprecate batch-size config from console producerChange did not require a KIP
KIP-756: Move StreamsResetter tool outside of coreSubsumed by KIP-906

KIP-795: Add public APIs for AbstractCoordinator

Discarded in favor of KIP-848
KIP-832: Allow creating a producer/consumer using a producer/consumer configSuperseded by KIP-839
KIP-844: Transactional State StoresDiscarded in favor of KIP-892
KIP-845: 'HasField' predicate for kafka connectDiscarded in favor of improving existing SMTs
KIP 850: REST API for filtering Connector plugins by typeDiscarded as JIRA was obsolete
KIP-856: KRaft Disk Failure RecoveryDiscarded in favor of KIP-853: KRaft Controller Membership Changes
KIP-871: Fix ByteBufferSerializer#serialize(String, ByteBuffer) compatible problemDiscard as it doesn't change any public API.
KIP-874: TopicRoundRobinAssignorDiscard as it is too specific.
KIP-897: Publish a single kafka (aka core) Maven artifact in Apache Kafka 4.0Taking a different approach.
KIP-908: Add description field to connector configurationDiscarded as the benefits are too limited
KIP-947: Add support for consumer group protocol in ConsumerChange did not require a KIP
KIP-944: Support async runtimes in consumer and KIP-957: Support Async runtimesWithdrawn because the committers do not seem to be convinced that you cannot control on what thread code runs with an async runtime
KIP-990: Capability to PAUSE Tasks on DeserializationExceptionRejected during the discussion, due to technical concerns.
KIP-1007: Introduce Remote Storage Not Ready Exception

Discarded as the change is not compatible with the consumer.

KIP Discussion Recordings

...