Versions Compared

Key

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

...

KIP round-up

Next KIP Number: 495526

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

...

455: Create an Administrative API for Replica Reassignment453: Add close() method to RocksDBConfigSetter3446: Add changelog topic configuration to KTable suppress429: Kafka Consumer Incremental Rebalance Protocol (WIP)427: Add AtMinIsr topic partition category (new metric & TopicCommand option)3417: Allow JmxTool to connect to a secured RMI port3415: Incremental Cooperative Rebalancing in Kafka Connect412 Extend Admin API to support dynamic application log levels4 (WIP)411 Make default Kafka Connect worker task client IDs distinct3386: Standardize on Min/Avg/Max metrics' default value2382: MirrorMaker 2.04 (WIP)376: Implement AutoClosable on appropriate classes that want to be used in a try-with-resource statement374: Add '--help' option to all available Kafka CLI commands2372: Naming Repartition Topics for Joins and Grouping1371: Add a configuration to build custom SSL principal name367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)2366: Make FunctionConversions deprecated1353: Improve Kafka Streams Timestamp Synchronization1340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file1339: Create a new IncrementalAlterConfigs API3-338 Support to exclude the internal topics in kafka-topics.sh command1322: Return new error code for DeleteTopics API when topic deletion disabled.321 Update TopologyDescription to better represent Source and Sink Nodes308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides2.1305: Add Connect primitive number converters0295 Add Streams Configuration Allowing for Optional Topology Optimization0279: Fix log divergence between leader and follower after fast leader fail over0278 - Add version option to Kafka's commands0276 - Add StreamsConfig prefix for different consumers0268: Simplify Kafka Streams Rebalance Metadata Upgrade0267: Add Processor Unit Test Support to Kafka Streams Test Utils265: Make Windowed Serde to public APIs-261: Add Single Value Fetch in Window Stores258: Allow to Store Record Timestamps in RocksDB2.3.0 (partially implemented)257 - Configurable Quota Management251: Allow timestamp manipulation in Processor API0247: Add public test utils for Kafka Streams1.1245: Use Properties instead of StreamsConfig in KafkaStreams constructor243: Make ProducerConfig and ConsumerConfig constructors public1.1-238: Expose Kafka cluster ID in Connect REST API1.1237: More Controller Health Metrics235: Add DNS alias support for secured connection1-229: DeleteGroups API1.1225 - Use tags for consumer “records.lag” metrics1.1222 - Add Consumer Group operations to Admin API0219 - Improve quota communication213 Support non-key joining in KTable4 (WIP)212: Enforce set of legal characters for connector names1.1204 : Adding records deletion operation to the new Admin Client API1183 - Change PreferredReplicaLeaderElectionCommand to use AdminClient2176: Remove deprecated new-consumer option for tools2.0174 - Deprecate and remove internal converter configs in WorkerConfig0163: Lower the Minimum Required ACL Permission of OffsetFetch157 - Add consumer config options to streams reset tool156 Add option "dry run" to Streams application reset tool0.11155 range scan for windowed state stores0.11.0.11133: Describe and Alter Configs Admin APIs0.11.130: Expose states of active tasks to KafkaStreams public API126 - Allow KafkaProducer to split and resend oversized batches.0.11124 - Request rate quotas123: Allow per stream/table timestamp extractor110 Codec for ZStandard Compression2.1104: Granular Sensors for Streams 0.10.2.86: Configurable SASL callback handlers0

KIP (please keep this sorted by KIP number)

Release

1KIP-482: The Kafka Protocol should Support Optional Tagged Fields2.4.0 (WIP)
2KIP-488: Clean up Sum,Count,Total Metrics-504 - Add new Java Authorizer Interface2.4.0 (WIP)
3KIP-484: Expose metrics for group and transaction metadata loading duration503: Add metric for number of topics marked for deletion2.4.0 (WIP)
4KIP-465497: Add Consolidated Connector Endpoint to Connect REST APIinter-broker API to alter ISR2.34.0 (WIP)
5KIP-464: Defaults for AdminClient#createTopic496: Administrative API to delete consumer offsets2.4.0 (WIP)
6KIP-462: Use local thread id for KStreams488: Clean up Sum,Count,Total Metrics2.34.0
7KIP-461: Improve Replica Fetcher behavior at handling partition failure484: Expose metrics for group and transaction metadata loading duration2.34.0 (WIP)
8KIP-460: Admin Leader Election RPC480: Sticky Partitioner2.4.0
9KIP-458: Connector Client Config Override Policy479: Add Materialized to Join2.34.0(WIP)
10KIP-454: Expansion of the ConnectClusterState interface476: Add Java AdminClient Interface2.34.0
11KIP-475: New Metrics to Measure Number of Tasks on a Connector2.4.0 (WIP)
12KIP-449: Add connector contexts to log messages in Connect workers 474: To deprecate WindowStore#put(key, value)2.34.0 (WIP)
13KIP-471: Expose RocksDB Metrics in Kafka Streams

2.4.0 (WIP)

14KIP-445: In-memory Session Store467: Augment ProduceResponse error messaging for specific culprit records2.34.0 (WIP)
15KIP-443: Return to default segment.ms and segment.index.bytes in Streams repartition topics465: Add Consolidated Connector Endpoint to Connect REST API2.3.0
16KIP-442: Return to default max poll interval in Streams464: Defaults for AdminClient#createTopic2.34.0
17KIP-436: Add a metric indicating start time462: Use local thread id for KStreams2.3.0
18KIP-430 - Return Authorized Operations in Describe Responses461: Improve Replica Fetcher behavior at handling partition failure2.3.0
19KIP-460: Admin Leader Election RPC2.4.0
20KIP-428: Add in-memory window store458: Connector Client Config Override Policy2.3.0
21KIP-455: Create an Administrative API for Replica Reassignment2.4.0 (WIP)
22KIP-425: Add some Log4J Kafka Appender Properties for Producing to Secured Brokers454: Expansion of the ConnectClusterState interface2.3.0
23KIP-421: Support resolving externalized secrets in AbstractConfig453: Add close() method to RocksDBConfigSetter2.3.0
24KIP-420449: Add Single Value Fetch in Session Storesconnector contexts to log messages in Connect workers 2.23.0
25KIP-446: Add changelog topic configuration to KTable suppress2.4.0 (WIP)
26KIP-445: In-memory Session Store2.3.0
27

KIP-

414: Expose Embedded ClientIds in Kafka Streams

443: Return to default segment.ms and segment.index.bytes in Streams repartition topics

2.23.0
28KIP-442: Return to default max poll interval in Streams2.3.0
29KIP-440: Extend Connect Converter to support headers2.4.0 (WIP)
30KIP-402: Improve fairness in SocketServer processors436: Add a metric indicating start time2.2.2.0 (partially implemented) / 2.3.0
31KIP-394: Require member.id for initial join group request430 - Return Authorized Operations in Describe Responses2.23.0
32KIP-393: Time windowed serde to properly deserialize changelog input topic429: Kafka Consumer Incremental Rebalance Protocol2.24.0 (WIP)
33KIP-428: Add in-memory window store2.3.0
34KIP-427: Add AtMinIsr topic partition category (new metric & TopicCommand option)2.3.0
35KIP-380: Detect outdated control requests and bounced brokers using broker generation425: Add some Log4J Kafka Appender Properties for Producing to Secured Brokers2.23.0
36KIP-377: TopicCommand to use AdminClient421: Support resolving externalized secrets in AbstractConfig2.23.0
37KIP-420: Add Single Value Fetch in Session Stores2.2.0
38KIP-417: Allow JmxTool to connect to a secured RMI port2.3.0
39KIP-415: Incremental Cooperative Rebalancing in Kafka Connect2.3.0
40KIP-414: Expose Embedded ClientIds in Kafka Streams2.2.0
41KIP 368: Allow SASL Connections to Periodically Re-Authenticate-412: Extend Admin API to support dynamic application log levels2.24.0 (WIP)
42

KIP-

411: Make default Kafka Connect worker task client IDs distinct

2.3.0
43KIP-402: Improve fairness in SocketServer processors2.2.0 (partially implemented) / 2.3.0
44KIP-365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde401: TransformerSupplier/ProcessorSupplier StateStore connecting2.14.0 (WIP)
45KIPKIP-361396: Add Consumer Configuration to Disable Auto Topic CreationCommit/List Offsets Operations to AdminClient2.34.0 (WIP)
46KIP-359: Verify leader epoch in produce requests394: Require member.id for initial join group request2.42.0 (WIP)
47KIP-358: Migrate Streams API to Duration instead of long ms times393: Time windowed serde to properly deserialize changelog input topic2.12.0
48KIP-357: Add support to list ACLs per principal389: Introduce a configurable consumer group size limit2.12.0
49KIP-356: Add withCachingDisabled() to StoreBuilder386: Standardize on Min/Avg/Max metrics' default value2.12.0
50KIP-354: Add a Maximum Log Compaction Lag382: MirrorMaker 2.02.34.0
51

KIP-

379: Multiple Consumer Group Management

2.4.0 (WIP)
52KIP-351: Add --under-min-isr option to describe topics command380: Detect outdated control requests and bounced brokers using broker generation2.32.0
53KIP-346: Improve LogCleaner behavior on error377: TopicCommand to use AdminClient2.2.02.1
54KIP-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.22.4.0 (WIP), partially available in 2.3.0
55KIP-342 Add support for custom SASL extensions in OAuthBearer authentication374: Add '--help' option to all available Kafka CLI commands2.12.0
56KIP-341: Update Sticky Assignor's User Data Protocol372: Naming Repartition Topics for Joins and Grouping2.31.0
57KIP-371: Add a configuration to build custom SSL principal name2.2.0
58KIP-369: Alternative Partitioner to Support "Always Round-Robin" Selection2.4.0
59KIP 368: Allow SASL Connections to Periodically Re-Authenticate2.2.0
60KIP-336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)2.12.0
61KIP-332: Update AclCommand to use AdminClient API366: Make FunctionConversions deprecated2.1.0
62KIP-331 Add default implementation to close() and configure() for Serializer, Deserializer and 365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde2.31.0
63KIPKIP-330361: Add retentionPeriod in SessionBytesStoreSupplierConsumer Configuration to Disable Auto Topic Creation2.13.0
64KIP-328: Ability to suppress updates for KTables360: Improve handling of unknown producer2.1.0 (partially implemented) / 2.34.0 (WIP)
65KIP-324: Add method to get metrics() in AdminClient359: Verify leader epoch in produce requests2.14.0 (WIP)
66KIP-358: Migrate Streams API to Duration instead of long ms times2.1.0
67KIP-357: Add support to list ACLs per principal2.1.0
68KIP-320: Allow fetchers to detect and handle log truncation356: Add withCachingDisabled() to StoreBuilder2.1.0 (partially implemented) / 2.2.0
69KIP-319: Replace segments with segmentInterval in WindowBytesStoreSupplier354: Add a Maximum Log Compaction Lag2.13.0
70KIP-313: Add KStream.flatTransform and KStream.flatTransformValues 353: Improve Kafka Streams Timestamp Synchronization2.21.0 (partially implemented)

/ 2.3.0

71KIP-312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties352: Distinguish URPs caused by reassignment2.14.0 (WIP)
72KIP-351: Add --under-min-isr option to describe topics command2.3.0
73KIP-307: Allow to define custom processor names with KStreams DSL346: Improve LogCleaner behavior on error2.3.0 (partial)1
74KIP-306: Configuration for Delaying Response to Failed Authentication345: Introduce static membership protocol to reduce consumer rebalances2.4.0 (WIP), partially available in 2.32.1.0
75KIP-342 Add support for custom SASL extensions in OAuthBearer authentication2.1.0
76KIP-303: Add Dynamic Routing in Streams Sink341: Update Sticky Assignor's User Data Protocol2.03.0
77KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file2.1.0
78KIP-300: Add Windowed KTable API in StreamsBuilder339: Create a new IncrementalAlterConfigs API2.43.0
79KIP-298: Error Handling in Connect338 Support to exclude the internal topics in kafka-topics.sh command2.01.0
80KIP-297: Externalizing Secrets for Connect Configurations336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer2.01.0
81KIP-332: Update AclCommand to use AdminClient API2.1.0
82KIP-294 - Enable TLS hostname verification by default331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde2.03.0
83KIP-292330: Add transformValues() method to KTableretentionPeriod in SessionBytesStoreSupplier2.01.0
84KIP-290: Support for Prefixed ACLs328: Ability to suppress updates for KTables2.1.0 (partially implemented) / 2.3.0 (WIP)
85KIP-289: Improve the default group id behavior in KafkaConsumer324: Add method to get metrics() in AdminClient2.21.0
86KIP-285: Connect Rest Extension Plugin322: Return new error code for DeleteTopics API when topic deletion disabled.2.01.0
87KIP-284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE321: Update TopologyDescription to better represent Source and Sink Nodes2.01.0
88KIP-283: Efficient Memory Usage for Down-Conversion320: Allow fetchers to detect and handle log truncation2.1.0 (partially implemented) / 2.2.0
89KIP-282: Add the listener name to the authentication context319: Replace segments with segmentInterval in WindowBytesStoreSupplier2.01.0
90KIP-281: ConsumerPerformance: Increase Polling Loop Timeout and Make It Reachable by the End User313: Add KStream.flatTransform and KStream.flatTransformValues 

2.2.0 (partially implemented)

/ 2.3

2.0

.0

91KIP-312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties2.1.0
92KIP-308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides2.1.0
93KIP-277 - Fine Grained ACL for CreateTopics API307: Allow to define custom processor names with KStreams DSL2.03.0 (partial)
94KIP-306: Configuration for Delaying Response to Failed Authentication2.1.0
95KIP-274: Kafka Streams Skipped Records Metrics305: Add Connect primitive number converters2.0.0
96KIP-272303: Add API version tag to broker's RequestsPerSec metricDynamic Routing in Streams Sink2.0.0
97KIP-270 - A Scala Wrapper Library for Kafka Streams302 - Enable Kafka clients to use all DNS resolved IP addresses2.01.0
98KIP-300: Add Windowed KTable API in StreamsBuilder2.4.0
99KIP-298: Error Handling in Connect2.0.0
100KIP-266: Fix consumer indefinite blocking behavior297: Externalizing Secrets for Connect Configurations2.0.0
101KIP-295 Add Streams Configuration Allowing for Optional Topology Optimization2.0.0
102KIP-294 - Enable TLS hostname verification by default2.0.0
103

KIP-

291: Separating controller connections and requests from the data plane

Accepted
104KIP-292: Add transformValues() method to KTable2.0.0
105KIP-255: OAuth Authentication via SASL/OAUTHBEARER290: Support for Prefixed ACLs2.0.0
106KIP-289: Improve the default group id behavior in KafkaConsumer2.2.0
107KIP-249: Add Delegation Token Operations to KafkaAdminClient285: Connect Rest Extension Plugin2.0.0
108KIP-284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE2.0.0
109KIP-283: Efficient Memory Usage for Down-Conversion2.0.0
110KIP-244282: Add Record Header support to Kafka Streams Processor APIthe listener name to the authentication context2.0.0
111KIP-281: ConsumerPerformance: Increase Polling Loop Timeout and Make It Reachable by the End User2.0.0
112KIP-239 Add queryableStoreName() to GlobalKTable279: Fix log divergence between leader and follower after fast leader fail over2.01.1.0
113KIP-278 - Add version option to Kafka's commands2.0.0
114KIP-277 - Fine Grained ACL for CreateTopics API2.0.0
115KIP-276 - Add StreamsConfig prefix for different consumers2.0.0
116KIP-233: Simplify StreamsBuilder#addGlobalStore274: Kafka Streams Skipped Records Metrics2.01.1.0
117KIP-231: Improve the Required ACL of ListGroups API272: Add API version tag to broker's RequestsPerSec metric2.10.0
118KIP-270 - A Scala Wrapper Library for Kafka Streams2.0.0
119KIP-227 - Introduce Incremental FetchRequests to Increase Partition Scalability268: Simplify Kafka Streams Rebalance Metadata Upgrade2.01.1.0
120KIP-226 - Dynamic Broker Configuration267: Add Processor Unit Test Support to Kafka Streams Test Utils2.01.1.0
121KIP-266: Fix consumer indefinite blocking behavior2.0.0
122KIP-224: Add configuration parameter `retries` to Streams API265: Make Windowed Serde to public APIs2.01.1.0
123KIP-223 - Add per-topic min lead and per-partition lead metrics to KafkaConsumer261: Add Single Value Fetch in Window Stores2.0.0
124KIP-258: Allow to Store Record Timestamps in RocksDB2.3.0 (partially implemented)
125KIP-220: Add AdminClient into Kafka Streams' ClientSupplier257 - Configurable Quota Management2.01.1.0
126KIP-255: OAuth Authentication via SASL/OAUTHBEARER2.0.0
127KIP-218: Make KafkaFuture.Function java 8 lambda compatible251: Allow timestamp manipulation in Processor API2.0.1.1.0
128KIP-215249: Add topic regex support for Connect sinksDelegation Token Operations to KafkaAdminClient2.01.1.0
129KIP-214: Add zookeeper.max.in.flight.requests config to the broker247: Add public test utils for Kafka Streams1.1.0
130KIP-245: Use Properties instead of StreamsConfig in KafkaStreams constructor2.0.0
131KIP-244: Add Record Header support to Kafka Streams Processor API2.0.0
132KIP-211: Revise Expiration Semantics of Consumer Group Offsets243: Make ProducerConfig and ConsumerConfig constructors public12.1.0
133KIP-210 - Provide for custom error handling when Kafka Streams fails to produce239 Add queryableStoreName() to GlobalKTable1.1.0
134KIP-208: Add SSL support to Kafka 238: Expose Kafka cluster ID in Connect REST interfaceAPI1.1.0
135KIP-207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change237: More Controller Health Metrics2.20.0
136KIP-206235: Add DNS alias support for UUID serialization and deserializationsecured connection2.1.0
137KIP-205: Add all() and range() API to ReadOnlyWindowStore233: Simplify StreamsBuilder#addGlobalStore1.1.0
138KIP-231: Improve the Required ACL of ListGroups API2.1.0
139KIP-203: Add toLowerCase support to sasl.kerberos.principal.to.local rule 229: DeleteGroups API1.1.0
140KIP-202: Move merge() from StreamsBuilder to KStream227 - Introduce Incremental FetchRequests to Increase Partition Scalability1.01.0
141KIP-198: Remove ZK dependency from Streams Reset Tool-226 - Dynamic Broker Configuration1.01.0
142KIP-197 Connect REST API should include the connector type when describing a connector-225 - Use tags for consumer “records.lag” metrics1.01.0
143KIP-196224: Add metrics to Kafka Connect frameworkconfiguration parameter `retries` to Streams API1.01.0
144KIP-195: AdminClient.createPartitions223 - Add per-topic min lead and per-partition lead metrics to KafkaConsumer21.0.0
145KIP-192 : Provide cleaner semantics when idempotence is enabled-222 - Add Consumer Group operations to Admin API21.0.0
146KIP-191: KafkaConsumer.subscribe() overload that takes just Pattern221: Enhance DSL with Connecting Topic Creation and Repartition Hint2.4.0 (WIP)1.0.0
147KIP-190: Handle client-ids consistently between clients and brokers220: Add AdminClient into Kafka Streams' ClientSupplier1.01.0
148KIP-219 - 189: Improve principal builder interface and add support for SASLImprove quota communication21.0.0
149KIP-188 - Add new metrics to support health checks218: Make KafkaFuture.Function java 8 lambda compatible1.01.0
150KIP-187 - Add cumulative count metric for all Kafka rate metrics215: Add topic regex support for Connect sinks1.01.0
151KIP-186: Increase offsets retention default to 7 days214: Add zookeeper.max.in.flight.requests config to the broker1.12.0.0
152KIP-213 Support non-key joining in KTable2.4.0 (WIP)
153KIP-182: Reduce Streams DSL overloads and allow easier use of custom storage engines212: Enforce set of legal characters for connector names1.01.0
154KIP-180: Add a broker metric specifying the number of consumer group rebalances in progress211: Revise Expiration Semantics of Consumer Group Offsets21.1.0
155KIP-177: Consumer perf tool should count rebalance time-210 - Provide for custom error handling when Kafka Streams fails to produce1.01.0
156KIP-208: Add SSL support to Kafka Connect REST interface1.1.0
157KIP-175: Additional '--describe' views for ConsumerGroupCommand207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change2.21.1.0
158KIP-206: Add support for UUID serialization and deserialization2.1.0
159KIP-173205: Add prefix to StreamsConfig to enable setting default internal topic configsall() and range() API to ReadOnlyWindowStore1.01.0
160KIP-171 - Extend Consumer Group Reset Offset for Stream Application204 : Adding records deletion operation to the new Admin Client API1.1.0
161KIP-168: Add GlobalTopicCount and GlobalPartitionCount metric per cluster203: Add toLowerCase support to sasl.kerberos.principal.to.local rule 1.01.0
162KIP-167: Add interface for the state store restoration process202: Move merge() from StreamsBuilder to KStream1.0.0
163KIP-164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics198: Remove ZK dependency from Streams Reset Tool1.0.0
164KIP-197 Connect REST API should include the connector type when describing a connector1.0.0
165KIP-162: Enable topic deletion by default196: Add metrics to Kafka Connect framework1.0.0
166KIP-161: streams deserialization exception handlers195: AdminClient.createPartitions1.0.0
167KIP-192 : Provide cleaner semantics when idempotence is enabled1.0.0
168KIP-191: KafkaConsumer.subscribe() overload that takes just Pattern160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string1.0.0
168169KIP-190: Handle client-ids consistently between clients and brokers1.0.0
169170KIP-189: Improve principal builder interface and add support for SASL1.0.0
170171KIP-188 - Add new metrics to support health checks1.0.0
171172KIP-154 Add Kafka Connect configuration properties for creating internal topics187 - Add cumulative count metric for all Kafka rate metrics10.11.0.0
172173KIP-153: Include only client traffic in BytesOutPerSec metric186: Increase offsets retention default to 7 days20.11.0.0
173174KIP-152 - Improve diagnostics for SASL authentication failures183 - Change PreferredReplicaLeaderElectionCommand to use AdminClient2.21.0.0
174175KIP-151 Expose Connector type in REST API182: Reduce Streams DSL overloads and allow easier use of custom storage engines10.11.0.0
175176KIP-150 - Kafka-Streams Cogroup2.4.0 (WIP)
176KIP-149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner1.1.0 (partially implemented)
(WIP for 2.4.0)
180: Add a broker metric specifying the number of consumer group rebalances in progress1.1.0
177KIP-177: Consumer perf tool should count rebalance time1.0.0
178KIP-176: Remove deprecated new-consumer option for tools2177KIP-146 - Classloading Isolation in Connect.0.0
178179KIP-175: Additional '-145 - Expose Record Headers in Kafka Connect-describe' views for ConsumerGroupCommand1.1.0
179180KIP-144: Exponential backoff for broker reconnect attempts0.11.0.0180KIP-143: Controller Health Metrics174 - Deprecate and remove internal converter configs in WorkerConfig20.11.0.0
181KIP-140: Add administrative RPCs for adding, deleting, and listing ACLs173: Add prefix to StreamsConfig to enable setting default internal topic configs1.0.11.0.0
182KIP-138: Change punctuate semantics-171 - Extend Consumer Group Reset Offset for Stream Application1.01.0
183KIP-137: Enhance TopicCommand --describe to show topics marked for deletion168: Add GlobalTopicCount and GlobalPartitionCount metric per cluster10.11.0.0
184KIP-136167: Add Listener name to SelectorMetrics tagsinterface for the state store restoration process1.0.11.0.0
185

KIP

-134: Delay initial consumer group rebalance

-164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics

1.0.11.0.0
186

KIP-

163: Lower the Minimum Required ACL Permission of OffsetFetch

1.0.0
187KIP-162: Enable topic deletion by default1.0.0
188KIP-129: Streams Exactly-Once Semantics161: streams deserialization exception handlers10.11.0.0
189KIP-128: Add ByteArrayConverter for Kafka Connect160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string1.0.11.0.0
190KIP-157 - Add consumer config options to streams reset tool1.0.0
191KIP-156 Add option "dry run" to Streams application reset tool0.11.0.0
192KIP-155 - Add range scan for windowed state stores0.11.0.0
193KIP-122: Add Reset Consumer Group Offsets tooling154 Add Kafka Connect configuration properties for creating internal topics0.11.0.0
194KIP-121: Add KStream peek method153: Include only client traffic in BytesOutPerSec metric0.11.0.0
195KIP-120: Cleanup Kafka Streams builder API152 - Improve diagnostics for SASL authentication failures1.0.0
196KIP-119: Drop Support for Scala 2.10 in Kafka 0.11151 Expose Connector type in REST API0.11.0.0
197KIP-118: Drop Support for Java 7150 - Kafka-Streams Cogroup2.0.04.0 (WIP)
198KIP-117: Add a public AdminClient API for Kafka admin operations149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner1.1.0 (partially implemented)
(WIP for 2.4.0)0.11.0.0
199KIP-115: Enforce offsets.topic.replication.factor upon __consumer_offsets auto topic creation-146 - Classloading Isolation in Connect

0.11.0.0

200KIP-114: KTable state stores and improved semantics-145 - Expose Record Headers in Kafka Connect1.10.11.0.0
201KIP-113: Support replicas movement between log directories144: Exponential backoff for broker reconnect attempts0.11.01.1.0
202KIP-112: Handle disk failure for JBOD143: Controller Health Metrics0.111.0.0
203KIP-140: Add administrative RPCs for adding, deleting, and listing ACLs0.11.0.0
204KIP-109: Old Consumer Deprecation138: Change punctuate semantics10.11.0.0
205KIP-108: Create Topic Policy137: Enhance TopicCommand --describe to show topics marked for deletion0.1011.20.0
206KIP-107136: Add deleteRecordsBefore() API in AdminClientListener name to SelectorMetrics tags0.11.0.0
207KIP-106 - Change Default unclean.leader.election.enabled from True to False134: Delay initial consumer group rebalance0.11.0.0
208KIP-105: Addition of Record Level for Sensors133: Describe and Alter Configs Admin APIs0.1011.20.0
209KIP-130: Expose states of active tasks to KafkaStreams public API1.0.0
210KIP-103: Separation of Internal and External traffic129: Streams Exactly-Once Semantics0.1011.20.0
211KIP-102 - Add close with timeout for consumers128: Add ByteArrayConverter for Kafka Connect0.1011.20.0
212KIP-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
213KIP-100 - Relax Type constraints in Kafka Streams API124 - Request rate quotas0.1011.20.0
214KIP-99: Add Global Tables to Kafka Streams123: Allow per stream/table timestamp extractor0.1011.20.0
215KIP-98 - Exactly Once Delivery and Transactional Messaging122: Add Reset Consumer Group Offsets tooling0.11.0.0
216KIP-97: Improved Kafka Client RPC Compatibility Policy121: Add KStream peek method

0.

10

11.

2

0.0

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

KIP

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

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

0.11.0.0
230KIP-105: Addition of Record Level for Sensors231KIP-78: Cluster Id0.10.12.0
232231KIP-77: Improve Kafka Streams Join Semantics104: Granular Sensors for Streams 0.10.2.0
233232KIP-75 - Add per-connector Converters103: Separation of Internal and External traffic0.10.12.0
234233KIP-74: Add Fetch Response Size Limit in Bytes102 - Add close with timeout for consumers0.10.12.0
235234KIP-101 - 73: Replication QuotasAlter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation0.1011.10.0
236235KIP-72: Allow putting a bound on memory consumed by Incoming request 100 - Relax Type constraints in Kafka Streams API0.10.21.0.0
237236KIP-71: Enable log compaction and deletion to co-exist99: Add Global Tables to Kafka Streams0.10.12.0
238237KIP-70: Revise Partition Assignment Semantics on New Consumer's Subscription Change-98 - Exactly Once Delivery and Transactional Messaging0.1011.10.0
239238KIP-6797: Queryable state for Kafka StreamsImproved Kafka Client RPC Compatibility Policy0.10.12.0
240239KIP-66: Single Message Transforms for Kafka Connect96 - Add per partition metrics for in-sync and assigned replica count0.10.2.0 / 0.11.0.0
241240KIP-65: Expose timestamps to Connect94 Session Windows0.10.12.0
242241KIP-63: Unify store and downstream caching in streams93: Improve invalid timestamp handling in Kafka Streams0.10.12.0
243242KIP-62: Allow consumer to send heartbeats from a background thread-92 - Add per partition lag metrics to KafkaConsumer0.10.2.0
243KIP-91 Provide Intuitive User Timeouts in The Producer2.1.0
244KIP-60 - Make Java client classloading more flexible90 - Remove zkClient dependency from Streams0.10.12.0
245KIP-58 - Make Log Compaction Point Configurable89: Allow sink connectors to decouple flush and offset commit0.10.12.0
246KIP-57 - Interoperable LZ4 Framing88: OffsetFetch Protocol Update0.10.02.0
247KIP-56: Allow cross origin HTTP requests on all HTTP methods86: Configurable SASL callback handlers2.0.10.0.0
248KIP-55: Secure Quotas for Authenticated Users85: Dynamic JAAS configuration for Kafka clients0.10.12.0
249KIP-54: Sticky Partition Assignment Strategy84: Support SASL SCRAM mechanisms0.1110.02.0
250KIP-52: Connector Control APIs-82 - Add Record Headers0.1011.0.0
251KIP-51 - List Connectors REST API81: Bound Fetch memory usage in the consumer2.4.0 (WIP)0.10.0.0
252KIP-50 - Move Authorizer to o.a.k.common package79 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer0.10.1.0
253KIP-48 Delegation token support for Kafka78: Cluster Id0.101.1.0
254KIP-45 - Standardize all client sequence interaction on j.u.Collection.77: Improve Kafka Streams Join Semantics0.10.02.0
255KIP-43: Kafka SASL enhancements-75 - Add per-connector Converters0.10.01.0
256KIP-4274: Add Producer and Consumer InterceptorsFetch Response Size Limit in Bytes0.10.01.0
257KIP-41: Consumer Max Records73: Replication Quotas0.10.01.0
258KIP-40: ListGroups and DescribeGroup72: Allow putting a bound on memory consumed by Incoming request 10.9.0.0
259KIP-38: ZooKeeper Authentication71: Enable log compaction and deletion to co-exist0.910.01.0
260KIP-36 - Rack aware replica assignment70: Revise Partition Assignment Semantics on New Consumer's Subscription Change0.10.01.0
261KIP-35 - Retrieving protocol version67: Queryable state for Kafka Streams0.10.01.0
262KIP-33 - Add a time based log index66: Single Message Transforms for Kafka Connect0.10.1.2.0 / 0.11.0.0
263KIP-32 - Add 65: Expose timestamps to Kafka messageConnect0.10.01.0
264KIP-31 - Move to relative offsets in compressed message sets63: Unify store and downstream caching in streams0.10.01.0
265KIP-28 - Add a processor client62: Allow consumer to send heartbeats from a background thread0.10.01.0
266KIP-26 - Add Kafka Connect framework for data import/export60 - Make Java client classloading more flexible0.910.01.0
267KIP-25 - System test improvements58 - Make Log Compaction Point Configurable0.910.01.0
268KIP-22 - Expose a Partitioner interface in the new producer57 - Interoperable LZ4 Framing0.910.0.0
269KIP-21 - Dynamic Configuration56: Allow cross origin HTTP requests on all HTTP methods0.910.0.0 (WIP)
270KIP-20 Enable log preallocate to improve consume performance under windows and some old Linux file system55: Secure Quotas for Authenticated Users0.910.01.0
271KIP-19 - Add a request timeout to NetworkClient54: Sticky Partition Assignment Strategy0.911.0.0
272KIP-16 - Automated Replica Lag Tuning52: Connector Control APIs0.910.0.0
273KIP-15 - Add a close method with a timeout in the producer51 - List Connectors REST API0.910.0.0
274KIP-13 - Quota Design48 Delegation token support for Kafka1.1.00.9.0.0
275KIP-12 - Kafka Sasl/Kerberos and SSL implementation45 - Standardize all client sequence interaction on j.u.Collection.0.910.0.0
276KIP-11 - Kafka Authorizer design43: Kafka SASL enhancements0.910.0.0
277KIP-8 - Add a flush method to the producer API42: Add Producer and Consumer Interceptors0.910.0.0
278KIP-4 - Metadata Protocol Changes41: Consumer Max Records0.10.0.0
279KIP-4 - Command line and centralized administrative operations40: ListGroups and DescribeGroup0.9.0.0, 0.10.0.0, 0.10.1.0
280KIP-3 - Mirror Maker Enhancement38: ZooKeeper Authentication0.9.0.0
281KIP-2 - Refactor brokers to allow listening on multiple ports and IPs36 - Rack aware replica assignment0.910.0.0
282KIP-1 - Remove support of request.required.acks35 - Retrieving protocol version0.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.

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 Rollback
KIP-131 - Add access to OffsetStorageReader from SourceConnector
KIP-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-158: Kafka Connect should allow source connectors to set topic-specific settings for new topics
KIP-159: Introducing Rich functions to Streams
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-199: Add Kafka Connect offset tool
KIP-201: Rationalising Policy interfaces
KIP-209: Connection String Support
KIP-216: IQ should throw different exceptions for different errors
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-259: Improve Streams DSL Timestamp Propagation Semantics
KIP-260: add primary join operation for Stream-Stream join (WIP)Draft
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-275 - Indicate "isClosing" in the SinkTaskContextVoting in progress
KIP-280: Enhanced log compactionDiscussion
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-309: Add toUpperCase support to sasl.kerberos.principal.to.local ruleDiscussion
KIP-314: KTable to GlobalKTable Bi-directional JoinDiscussion
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-326: Schedulable KTable as Graph sourceDiscussion
KIP-333: Add faster mode of rebalancingDiscussion
KIP-334 - Include partitions in exceptions raised during consumer record deserialization/validation
KIP-335: Consider configurations for KafkaStreams

Discussion

KIP-347: Enable batching in FindCoordinatorRequestDiscussion
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-360: Improve handling of unknown producerDiscussion
KIP-362: Support Dynamic Session WindowDiscussion
KIP-363: Allow performance tools to print final results to output fileDiscussion
KIP-370: Remove Orphan PartitionsDiscussion
KIP-373: Allow users to create delegation tokens for other usersDiscussion
KIP-375: Kafka Clients - make Metadata#TOPIC_EXPIRY_MS configurableDiscussion
KIP-378: Enable Dependency Injection for Kafka Streams handlersDiscussion
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-383:  Pluggable interface for SSL FactoryVoting in progress
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-390: Allow fine-grained configuration for compressionDiscussion, JIRA exists with pull-request
KIP-391: Allow Producing with Offsets for Cluster ReplicationDiscussion, JIRA exists with pull-request
KIP-392: Allow consumers to fetch from closest replicaDiscussion
KIP-395: Encypt-then-MAC Delegation token metadata
KIP-397: Add methods to override fetch offsets based on timestampDiscussion
KIP-398: Support reading trust store from classpathDiscussion
KIP-399: Extend ProductionExceptionHandler to cover serialization exceptionsDiscussion
KIP-400: Improve exit status in case of errors in ConsoleProducerDiscussion
KIP-403: Increase ProducerPerformance precision by using nanoTimeDraft
KIP-405: Kafka Tiered Storage

Discussion

KIP-406: GlobalStreamThread should honor custom offset policy.Discussion
KIP-407: Kafka Connect support override worker kafka api configuration with connector configuration that post by rest api
KIP-408: Add asynchronous processing to Kafka StreamsDiscussion

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-418: A method-chaining way to branch KStreamDiscussion, JIRA exists with pull-request
KIP-419: Safely notify Kafka Connect SourceTask is stoppedVoting in progress, JIRA exists with pull request
KIP-422: Add support for client quota configuration in the Kafka Admin Client

Please insert new rows in sorted order (ascending by KIP number).

416: Notify SourceTask of ACK'd offsets, metadata
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-131 - Add access to OffsetStorageReader from SourceConnectorKIP-135 : Send of null key to a compacted topic should throw non-retriable error back to userKIP 141 - ProducerRecord & SourceRecord: Add timestamp constructorsKIP-142: Add ListTopicsRequest to efficiently list all the topics in a clusterKIP-148: Add a connect timeout for clientKIP-158: Kafka Connect should allow source connectors to set topic-specific settings for new topicsKIP-159: Introducing Rich functions to StreamsKIP-166 - Add a tool to make amounts of replicas and leaders on brokers balancedKIP-169 - Lag-Aware Partition Assignment StrategyKIP-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-199: Add Kafka Connect offset toolKIP-201: Rationalising Policy interfacesKIP-209: Connection String SupportKIP-216: IQ should throw different exceptions for different errorsKIP-217: Expose a timeout to allow an expired ZK session to be re-created
KIP-221: Enhance KStream with Connecting Topic Creation and Repartition HintDiscussion
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 responseKIP-250 Add Support for Quorum-based Producer AcknowledgmentKIP-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 HandelingKIP-259: Improve Streams DSL Timestamp Propagation Semantics
KIP-260: add primary join operation for Stream-Stream join (WIP)Draft
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-275 - Indicate "isClosing" in the SinkTaskContextVoting in progress
KIP-280: Enhanced log compactionDiscussion

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

Accepted
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-314: KTable to GlobalKTable Bi-directional JoinDiscussion
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-326: Schedulable KTable as Graph sourceDiscussion
KIP-333: Add faster mode of rebalancingDiscussion
KIP-334 - Include partitions in exceptions raised during consumer record deserialization/validation
KIP-335: Consider configurations for KafkaStreams

Discussion

KIP-347: Enable batching in FindCoordinatorRequestDiscussion
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-360: Improve handling of unknown producerDiscussion
KIP-362: Support Dynamic Session WindowDiscussion
KIP-363: Allow performance tools to print final results to output fileDiscussion
KIP-369: Alternative Partitioner to Support "Always Round-Robin" SelectionAccepted
KIP-370: Remove Orphan PartitionsDiscussion
KIP-373: Allow users to create delegation tokens for other usersDiscussion
KIP-375: Kafka Clients - make Metadata#TOPIC_EXPIRY_MS configurableDiscussion
KIP-378: Enable Dependency Injection for Kafka Streams handlersDiscussion

KIP-379: Multiple Consumer Group Management

Accepted
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-383:  Pluggable interface for SSL FactoryVoting in progress
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-389: Introduce a configurable consumer group size limitAccepted
KIP-390: Allow fine-grained configuration for compressionDiscussion, JIRA exists with pull-request
KIP-391: Allow Producing with Offsets for Cluster ReplicationDiscussion, JIRA exists with pull-request
KIP-392423: Allow consumers to fetch from closest replicaAdd JoinReason to Consumer Join Group Protocol

Discussion

KIP-395: Encypt-then-MAC Delegation token metadata424: Allow suppression of intermediate events based on wall clock timeDiscussion
KIP-396: Add Commit/List Offsets Operations to AdminClientDiscussion426: Persist Broker Id to ZookeeperDiscussion
KIP-431: Support of printing additional ConsumerRecord fields in DefaultMessageFormatterVoting in progress, JIRA exists with pull-request
KIP-434: Add Replica Fetcher and Log Cleaner Count MetricsKIP-397: Add methods to override fetch offsets based on timestampDiscussion
KIP-398: Support reading trust store from classpath435: Internal Partition Reassignment BatchingDiscussion
KIP-399: Extend ProductionExceptionHandler to cover serialization exceptions437: Custom replacement for MaskField SMTVoting in progress, JIRA exists with pull-requestDiscussion
KIP-400: Improve exit status in case of errors in ConsoleProducer438: Expose task, connector IDs in Connect APIDiscussion
KIP-401: TransformerSupplier/ProcessorSupplier StateStore connectingVoting in progressKIP-403: Increase ProducerPerformance precision by using nanoTime439: Cleanup built-in Store interfacesDiscussionDraft
KIP-405441: Kafka Tiered StorageSmooth Scaling Out for Kafka StreamsDiscussion
KIP-406: GlobalStreamThread should honor custom offset policy.444: Augment metrics for Kafka StreamsDiscussion
KIP-407: Kafka Connect support override worker kafka api configuration with connector configuration that post by rest api447: Producer scalability for exactly once semanticsDiscussion
KIP-408448: Add asynchronous processing State Stores Unit Test Support to Kafka Streams Test UtilsDiscussion
KIP-409: Allow creating under-replicated topics and partitions450: Sliding Window Aggregations in the DSLDiscussion
KIP-452: Tool to view cluster statusDiscussion, JIRA exists
KIP-410: Add metric for request handler thread pool utilization by request type457: Add DISCONNECTED status to Kafka StreamsDiscussion Discussion
KIP-459: Improve KafkaStreams#closeDiscussion
KIP-418: A method-chaining way to branch KStreamDiscussion, JIRA exists with pull-request
KIP-419: Safely notify Kafka Connect SourceTask is stoppedVoting in progress, JIRA exists with pull request
KIP-421: Support resolving externalized secrets in AbstractConfigAccepted
KIP-422: Add support for client quota configuration in the Kafka Admin ClientDiscussion, 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-431: Support of printing additional ConsumerRecord fields in DefaultMessageFormatterVoting in progress, JIRA exists with pull-request
KIP-434: Add Replica Fetcher and Log Cleaner Count MetricsDiscussion
KIP-435: Internal Partition Reassignment BatchingDiscussion
KIP-437: Custom replacement for MaskField SMTVoting in progress, JIRA exists with pull-request
KIP-438: Expose task, connector IDs in Connect APIDiscussion
KIP-439: Cleanup built-in Store interfacesDiscussion
KIP-440: Extend Connect Converter to support headersVoting in progress
KIP-444: Augment metrics for Kafka StreamsDiscussion
KIP-448: Add State Stores Unit Test Support to Kafka Streams Test UtilsDiscussion
KIP-450: Sliding Window Aggregations in the DSLDiscussion
KIP-452: Tool to view cluster statusDiscussion, JIRA exists
KIP-457: Add DISCONNECTED status to Kafka StreamsDiscussion 
KIP-459: Improve KafkaStreams#closeDiscussion
KIP-463: Auto-configure non-default Serdes passed alongside the TopologyBuilderUnder discussion
KIP-466: Add support for List<T> serialization and deserializationVoting in progress
KIP-468: Avoid decompression of record when validate record at server in the scene of inPlaceAssignment .Under discussion
KIP-470: TopologyTestDriver test input and output usability improvementsUnder discussion
KIP-471: Expose RocksDB Metrics in Kafka Streams

Accepted

KIP-473: Enable KafkaLog4JAppender to use SASL Authentication Callback HandlersUnder Discussion 
KIP-474: To deprecate WindowStore#put(key, value)Accepted
KIP-475: New Metrics to Measure Number of Tasks on a ConnectorAccepted
KIP-476: Add Java AdminClient InterfaceUnder Discussion
KIP-477: Add PATCH method for connector config in Connect REST APIUnder Discussion
KIP-478 - Strongly typed Processor APIUnder Discussion
KIP-479: Add Materialized to JoinUnder Discussion
KIP-480: Sticky PartitionerAccepted
KIP-481: SerDe Improvements for Connect Decimal type in JSONUnder Discussion
KIP-482: Optional fields in the Kafka Protocol
463: Auto-configure non-default Serdes passed alongside the TopologyBuilderUnder discussion
KIP-466: Add support for List<T> serialization and deserializationVoting in progress
KIP-468: Avoid decompression of record when validate record at server in the scene of inPlaceAssignment .Under discussion
KIP-470: TopologyTestDriver test input and output usability improvementsUnder 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
KIP-478 - Strongly typed Processor APIUnder Discussion
KIP-481: SerDe Improvements for Connect Decimal type in JSONUnder Discussion
KIP-486: Support custom way to load KeyStore and TrustStoreUnder Discussion
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-495: Dynamically Adjust Log Levels in ConnectSent mail to dev discussion group. 
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-499 - Unify connection name flag for command line tool

Under discussion
KIP-499: Create a controller RPC for changing configurations
KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
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-507: Securing Internal Connect REST EndpointsUnder discussion
KIP-508: Make Suppression State QueriableUnder discussion
KIP-509: Rebalance and restart ProducersUnder discussion
KIP-510: Metrics library upgradeUnder discussion

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


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 streams

KIP-514:Add a bounded flush() API to Kafka Producer


KIP-515: Reorganize checkpoint system in log cleaner to per partition 
KIP-516: Topic Identifiers & Topic Deletion State ImprovementsUnder discussion
KIP-517: Add consumer metric indicating time between poll callsUnder discussion
KIP-518: Allow listing consumer groups per stateUnder discussion
KIP-519: Make SSL context/engine configuration extensibleUnder discussion
KIP-521: Enable redirection of Connect's log4j messages to a file by defaultUnder discussion

KIP-522: Update BrokerApiVersionsCommand to use AdminClient

Draft
KIP-523: Add KStream#toTable to the Streams DSLUnder discussion
KIP-525 - Return topic metadata and configs in CreateTopics response
KIP-487: Automatic Topic Creation on ProducerUnder Discussion
KIP-489: Kafka Consumer Record Latency MetricUnder Discussion
KIP-490: log when consumer groups lose a message because offset has been deletedUnder discussion
KIP-491: Preferred Leader Deprioritized List (Temporary Blacklist)Under discussion


Dormant/inactive KIPs

...

Discarded KIPs

Please insert new rows in sorted order (ascending by KIP number).

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-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 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-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-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-364: Remove implicit Materialized, Consumed and ProducedSubsumed by KIP-365
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-50 - Move Authorizer to o.a.k.common packageSuperseded by KIP-504

KIP Discussion Recordings

...