Versions Compared

Key

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

...

  1. Click
    Create from template
    templateName54329345
    templateId54329345
    titleKIP-NEXT: Insert Title Here
    buttonLabelCreate KIP
    . Take the next available KIP number and give your proposal a descriptive heading. e.g. "KIP 42: Allow Infinite Retention With Bounded Disk Usage".
  2. Fill in the sections as described above
  3. Start a [DISCUSS] thread on the Apache mailing list. Please ensure that the subject of the thread is of the format [DISCUSS] KIP-{your KIP number} {your KIP heading} The and the body contains a link to your new KIP. The discussion should happen on the mailing list, not on the wiki, since the wiki comment system doesn't work well for larger discussions. In the process of the discussion you may update the proposal. You should let people know the changes you are making. When you feel you have a finalized proposal 
  4. Once the proposal is finalized call a [VOTE] to have the proposal adopted. These proposals are more serious than code changes and more serious even than release votes. The criteria for acceptance is lazy majority. The vote should remain open for at least 72 hours.
  5. Please update the KIP wiki page, and the index below, to reflect the current stage of the KIP after a vote. This acts as the permanent record indicating the result of the KIP (e.g., Accepted or Rejected). Also report the result of the KIP vote to the voting thread on the mailing list so the conclusion is clear.

KIP round-up

Next KIP Number: 468527

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

...

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

465: Add Consolidated Connector Endpoint to Connect REST API2.3.0 (WIP)462: Use local thread id for KStreams3460: Admin Leader Election RPC3449: Add connector contexts to log messages in Connect workers 3446: Add changelog topic configuration to KTable suppress3436: Add a metric indicating start time3 (WIP)417 Allow JmxTool to connect to a secured RMI port3415: Incremental Cooperative Rebalancing in Kafka Connect3 (WIP)427: Add AtMinIsr topic partition category (new metric & TopicCommand option)3430 - Return Authorized Operations in Describe Responses3402: Improve fairness in SocketServer processors2 (WIP)394: Require member.id for initial join group request2380: Detect outdated control requests and bounced brokers using broker generation2371: Add a configuration to build custom SSL principal name2 368: Allow SASL Connections to Periodically Re-Authenticate2-366: Make FunctionConversions deprecated1KIP361 Consumer Configuration to Disable Auto Topic Creation359: Verify leader epoch in produce requests (WIP)357: Add support to list ACLs per principal1356 withCachingDisabled() to StoreBuilder1353: Improve Kafka Streams Timestamp Synchronization1351: Add --under-min-isr option to describe topics command342 Add support for custom SASL extensions in OAuthBearer authentication1341: Update Sticky Assignor's User Data Protocol (WIP)332: Update AclCommand to use AdminClient API1331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde3 (WIP)324: Add method to get metrics() in AdminClient1322: Return new error code for DeleteTopics API when topic deletion disabled.1312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties1-306: Configuration for Delaying Response to Failed Authentication1305: Add Connect primitive number converters2.0303: Add Dynamic Routing in Streams Sink0292 transformValues() method to KTable0285: Connect Rest Extension Plugin0279: Fix log divergence between leader and follower after fast leader fail over0276 - Add StreamsConfig prefix for different consumers00-274: Kafka Streams Skipped Records Metrics0270 - A Scala Wrapper Library for Kafka Streams0268: Simplify Kafka Streams Rebalance Metadata Upgrade0267 Processor Unit Test Support to Kafka Streams Test Utils0265: Make Windowed Serde to public APIs0257 - Configurable Quota Management2.0251: Allow timestamp manipulation in Processor API2.0.249: Add Delegation Token Operations to KafkaAdminClient0245: Use Properties instead of StreamsConfig in KafkaStreams constructor0239 Add queryableStoreName() to GlobalKTable1.1238: Expose Kafka cluster ID in Connect REST API1237: More Controller Health Metrics0233: Simplify StreamsBuilder#addGlobalStore1.1-229: DeleteGroups API1.1KIP-223 - Add per-topic min lead and per-partition lead metrics to KafkaConsumer222 - Add Consumer Group operations to Admin API220 AdminClient into Kafka Streams' ClientSupplier218: Make KafkaFuture.Function java 8 lambda compatible1.1214: Add zookeeper.max.in.flight.requests config to the broker1.1210 - Provide for custom error handling when Kafka Streams fails to produce1.1208: Add SSL support to Kafka Connect REST interface1.1206: Add support for UUID serialization and deserialization1205: Add all() and range() API to ReadOnlyWindowStore1.1202: Move merge() from StreamsBuilder to KStream1.0.0197 Connect REST API should include the connector type when describing a connector1190: Handle client-ids consistently between clients and brokers1183 - Change PreferredReplicaLeaderElectionCommand to use AdminClient2180: Add a broker metric specifying the number of consumer group rebalances in progress1176: Remove deprecated new-consumer option for tools2.0-163: Lower the Minimum Required ACL Permission of OffsetFetch1156 Add option "dry run" to Streams application reset tool0.11.0155 - Add range scan for windowed state stores0.11.0.0151 Expose Connector type in REST API0.11.0.0-130: Expose states of active tasks to KafkaStreams public API121: Add KStream peek method0.11112: Handle disk failure for JBOD110: Add Codec for ZStandard Compression2.1107: Add deleteRecordsBefore() API in AdminClient0.11.106 - Change Default unclean.leader.election.enabled from True to False105: Addition of Record Level for Sensors10286: Configurable SASL callback handlers265: Expose timestamps to Connect0.10

KIP (please keep this sorted by KIP number)

Release

1KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
2KIP-482: The Kafka Protocol should Support Optional Tagged Fields2.4.0 (WIP)
3KIP-504 - Add new Java Authorizer Interface2.4.0 (WIP)
4KIP-454: Expansion of the ConnectClusterState interface503: Add metric for number of topics marked for deletion2.34.0 (WIP)
5KIP-453497: Add close() method to RocksDBConfigSetterinter-broker API to alter ISR2.34.0 (WIP)
6KIP-496: Administrative API to delete consumer offsets2.4.0 (WIP)
7KIP-495: Dynamically Adjust Log Levels in Connect2.4.0 (WIP)
8KIP-445: In-memory Session Store488: Clean up Sum,Count,Total Metrics2.34.0
9KIP-443: Return to default segment.ms and segment.index.bytes in Streams repartition topics484: Expose metrics for group and transaction metadata loading duration2.34.0 (WIP)
10KIP-442: Return to default max poll interval in Streams481: SerDe Improvements for Connect Decimal type in JSON2.34.0 (WIP)
11KIP-480: Sticky Partitioner2.4.0
12KIP-479: Add Materialized to Join2.4.0(WIP)
13KIP-476: Add Java AdminClient Interface2.4.0
14KIP-475: New Metrics to Measure Number of Tasks on a Connector2.4.0 (WIP)
15KIP-474: To deprecate WindowStore#put(key, value)2.4.0 (WIP)
16KIP-428471: Add in-memory window storeExpose RocksDB Metrics in Kafka Streams

2.

3

4.0 (WIP)

17KIP-425: Add some Log4J Kafka Appender Properties for Producing to Secured Brokers467: Augment ProduceResponse error messaging for specific culprit records2.34.0 (WIP)
18KIP-420465: Add Single Value Fetch in Session StoresConsolidated Connector Endpoint to Connect REST API2.23.0
19KIP-421: Support resolving externalized secrets in AbstractConfig464: Defaults for AdminClient#createTopic2.34.0
20KIP-412: Extend Admin API to support dynamic application log levels462: Use local thread id for KStreams2.3.0 (WIP)
21KIP-414: Expose Embedded ClientIds in Kafka Streams461: Improve Replica Fetcher behavior at handling partition failure2.23.0
22KIP-460: Admin Leader Election RPC2.4.0
23KIP-458: Connector Client Config Override Policy2.3.0
24KIP-393: Time windowed serde to properly deserialize changelog input topic455: Create an Administrative API for Replica Reassignment2.24.0 (WIP)
25KIP-386: Standardize on Min/Avg/Max metrics' default value454: Expansion of the ConnectClusterState interface2.23.0
26KIP-382: MirrorMaker 2.0453: Add close() method to RocksDBConfigSetter2.3.0 (WIP)
27KIP-449: Add connector contexts to log messages in Connect workers 2.3.0
28KIP-377: TopicCommand to use AdminClient446: Add changelog topic configuration to KTable suppress2.24.0 (WIP)
29KIP-376: Implement AutoClosable on appropriate classes that want to be used in a try-with-resource statement445: In-memory Session Store2.23.0
30

KIP-

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

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

2.23.0
31KIP-372: Naming Repartition Topics for Joins and Grouping442: Return to default max poll interval in Streams2.13.0
32KIP-440: Extend Connect Converter to support headers2.4.0 (WIP)
33KIP-436: Add a metric indicating start time2.3.0
34KIP-367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)434: Add Replica Fetcher and Log Cleaner Count Metrics2.24.0 (WIP)
35KIP-430 - Return Authorized Operations in Describe Responses2.3.0
36KIP-365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde429: Kafka Consumer Incremental Rebalance Protocol2.14.0 (WIP)
37KIP-428: Add in-memory window store2.3.0
38KIP-427: Add AtMinIsr topic partition category (new metric & TopicCommand option)2.3.0
39KIP-358: Migrate Streams API to Duration instead of long ms times425: Add some Log4J Kafka Appender Properties for Producing to Secured Brokers2.13.0
40KIP-421: Support resolving externalized secrets in AbstractConfig2.3.0
41KIP-420: Add Single Value Fetch in Session Stores2.2.0
42KIP-417: Allow JmxTool to connect to a secured RMI port2.3.0
43KIP-415: Incremental Cooperative Rebalancing in Kafka Connect2.3.0
44KIP-346: Improve LogCleaner behavior on error414: Expose Embedded ClientIds in Kafka Streams2.2.02.1
45KIP-412: Extend Admin API to support dynamic application log levels2.4.0 (WIP)
46

KIP-

411: Make default Kafka Connect worker task client IDs distinct

2.3.0
47KIP-340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file402: Improve fairness in SocketServer processors2.2.0 (partially implemented) / 2.32.1.0
48KIP-339: Create a new IncrementalAlterConfigs API401: TransformerSupplier/ProcessorSupplier StateStore connecting2.3.0 4.0 (WIP)
49KIP-338 Support to exclude the internal topics in kafka-topics.sh command396: Add Commit/List Offsets Operations to AdminClient2.14.0 (WIP)
50KIP-336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer394: Require member.id for initial join group request2.12.0
51KIP-393: Time windowed serde to properly deserialize changelog input topic2.2.0
52KIP-389: Introduce a configurable consumer group size limit2.2.0
53KIP-330: Add retentionPeriod in SessionBytesStoreSupplier386: Standardize on Min/Avg/Max metrics' default value2.12.0
54KIP-328: Ability to suppress updates for KTables382: MirrorMaker 2.01.0 (partially implemented) / 2.34.0 (WIP)
55

KIP-

379: Multiple Consumer Group Management

2.4.0 (WIP)
56KIP-380: Detect outdated control requests and bounced brokers using broker generation2.2.0
57KIP-321377: Update TopologyDescription to better represent Source and Sink NodesTopicCommand to use AdminClient2.12.0
58KIP-320: Allow fetchers to detect and handle log truncation376: Implement AutoClosable on appropriate classes that want to be used in a try-with-resource statement2.1.0 (partially implemented) / 2.2.0
59KIP-319: Replace segments with segmentInterval in WindowBytesStoreSupplier374: Add '--help' option to all available Kafka CLI commands2.12.0
60KIP-313: Add KStream.flatTransform and KStream.flatTransformValues 372: Naming Repartition Topics for Joins and Grouping2.21.0 (partially implemented)/ 2.3.0
61KIP-371: Add a configuration to build custom SSL principal name2.2.0
62KIP-308369: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overridesAlternative Partitioner to Support "Always Round-Robin" Selection2.14.0
63KIP 368: Allow SASL Connections to Periodically Re-Authenticate2.2.0
64KIP-367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit)2.2.0
65KIP-366: Make FunctionConversions deprecated2.1.0
66KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde2.1.0
67KIPKIP-298: Error Handling in Connect361: Add Consumer Configuration to Disable Auto Topic Creation2.03.0
68KIP-297: Externalizing Secrets for Connect Configurations360: Improve handling of unknown producer2.04.0 (WIP)
69KIP-295 Add Streams Configuration Allowing for Optional Topology Optimization359: Verify leader epoch in produce requests2.04.0 (WIP)
70KIP-294 - Enable TLS hostname verification by default358: Migrate Streams API to Duration instead of long ms times2.01.0
71KIP-357: Add support to list ACLs per principal2.1.0
72KIP-290: Support for Prefixed ACLs356: Add withCachingDisabled() to StoreBuilder2.01.0
73KIP-289: Improve the default group id behavior in KafkaConsumer354: Add a Maximum Log Compaction Lag2.23.0
74KIP-353: Improve Kafka Streams Timestamp Synchronization2.1.0
75KIP-284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE352: Distinguish URPs caused by reassignment2.04.0 (WIP)
76KIP-283: Efficient Memory Usage for Down-Conversion351: Add --under-min-isr option to describe topics command2.32.0.0
77KIP-282: Add the listener name to the authentication context346: Improve LogCleaner behavior on error2.0.01
78KIP-281: ConsumerPerformance: Increase Polling Loop Timeout and Make It Reachable by the End User345: Introduce static membership protocol to reduce consumer rebalances2.4.0 (WIP), partially available in 2.3.0
79KIP-342 Add support for custom SASL extensions in OAuthBearer authentication2.1.0
80KIP-278 - Add version option to Kafka's commands341: Update Sticky Assignor's User Data Protocol2.03.0
81KIP-277 - Fine Grained ACL for CreateTopics API340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file2.01.0
82KIP-339: Create a new IncrementalAlterConfigs API2.3.
83KIP-338 Support to exclude the internal topics in kafka-topics.sh command2.1.0
84KIP-272: Add API version tag to broker's RequestsPerSec metric336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer2.01.0
85KIP-332: Update AclCommand to use AdminClient API2.1.0
86KIP-331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde2.3.0
87KIP-330: Add retentionPeriod in SessionBytesStoreSupplier2.1.0
88KIP-266: Fix consumer indefinite blocking behavior328: Ability to suppress updates for KTables2.1.0 (partially implemented) / 2.3.0 (WIP)2.0.0
89KIP-324: Add method to get metrics() in AdminClient2.1.0
90KIP-261: Add Single Value Fetch in Window Stores322: Return new error code for DeleteTopics API when topic deletion disabled.2.01.0
91KIP-258321: Allow to Store Record Timestamps in RocksDBUpdate TopologyDescription to better represent Source and Sink Nodes2.31.0
92KIP-320: Allow fetchers to detect and handle log truncation2.1.0 (partially implemented) / 2.2.0
93KIP-255: OAuth Authentication via SASL/OAUTHBEARER319: Replace segments with segmentInterval in WindowBytesStoreSupplier2.01.0
94KIP-313: Add KStream.flatTransform and KStream.flatTransformValues 

2.2.0 (partially implemented)

/ 2.3.

0

95KIP-312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties2.1.0
96KIP-247: Add public test utils for Kafka Streams1.1.0308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides2.1.0
97KIP-307: Allow to define custom processor names with KStreams DSL2.3.0 (partial)
98KIP-244: Add Record Header support to Kafka Streams Processor API306: Configuration for Delaying Response to Failed Authentication2.01.0
99KIP-243: Make ProducerConfig and ConsumerConfig constructors public305: Add Connect primitive number converters2.01.1.0
100KIP-303: Add Dynamic Routing in Streams Sink2.0.0
101KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses2.1.0
102KIP-300: Add Windowed KTable API in StreamsBuilder2.4.0
103KIP-235: Add DNS alias support for secured connection298: Error Handling in Connect2.10.0
104KIP-297: Externalizing Secrets for Connect Configurations2.0.0
105KIP-231: Improve the Required ACL of ListGroups API295 Add Streams Configuration Allowing for Optional Topology Optimization2.10.0
106KIP-294 - Enable TLS hostname verification by default2.0.0
107

KIP-

227 - Introduce Incremental FetchRequests to Increase Partition Scalability
1.1.0
108KIP-226 - Dynamic Broker Configuration1.1.0
109KIP-225 - Use tags for consumer “records.lag” metrics1.1.0
110KIP-224: Add configuration parameter `retries` to Streams API1.1.0

291: Separating controller connections and requests from the data plane

Accepted
108KIP-292: Add transformValues() method to KTable2.0.0
109KIP-290: Support for Prefixed ACLs2.0.0
110KIP-289: Improve the default group id behavior in KafkaConsumer2.2.0
111KIP-285: Connect Rest Extension Plugin2.0.0
112KIP-284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE1112.0.0
112113KIP-283: Efficient Memory Usage for Down-Conversion2.0.0
113114KIP-282: Add the listener name to the authentication context1.1.0114KIP-219 - Improve quota communication2.0.0
115KIP-281: ConsumerPerformance: Increase Polling Loop Timeout and Make It Reachable by the End User2.0.0
116KIP-215: Add topic regex support for Connect sinks279: Fix log divergence between leader and follower after fast leader fail over2.01.1.0
117KIP-278 - Add version option to Kafka's commands2.0.0
118KIP-213 Support non-key joining in KTable277 - Fine Grained ACL for CreateTopics API2.30.0 (WIP)
119KIP-212: Enforce set of legal characters for connector names276 - Add StreamsConfig prefix for different consumers2.01.1.0
120KIP-211: Revise Expiration Semantics of Consumer Group Offsets274: Kafka Streams Skipped Records Metrics2.10.0
121KIP-272: Add API version tag to broker's RequestsPerSec metric2.0.0
122KIP-270 - A Scala Wrapper Library for Kafka Streams2.0.0
123KIP-207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change268: Simplify Kafka Streams Rebalance Metadata Upgrade2.20.0
124KIP-267: Add Processor Unit Test Support to Kafka Streams Test Utils2.0.0
125KIP-266: Fix consumer indefinite blocking behavior2.0.0
126KIP-204 : Adding records deletion operation to the new Admin Client API265: Make Windowed Serde to public APIs2.01.1.0
127KIP-203: Add toLowerCase support to sasl.kerberos.principal.to.local rule261: Add Single Value Fetch in Window Stores2.0 1.1.0
128KIP-258: Allow to Store Record Timestamps in RocksDB2.3.0 (partially implemented)
129KIP-198: Remove ZK dependency from Streams Reset Tool-257 - Configurable Quota Management21.0.0
130KIP-255: OAuth Authentication via SASL/OAUTHBEARER2.0.0
131KIP-196: Add metrics to Kafka Connect framework251: Allow timestamp manipulation in Processor API21.0.0
132KIP-195: AdminClient.createPartitions249: Add Delegation Token Operations to KafkaAdminClient21.0.0
133KIP-192 : Provide cleaner semantics when idempotence is enabled247: Add public test utils for Kafka Streams1.01.0
134KIP-191: KafkaConsumer.subscribe() overload that takes just Pattern245: Use Properties instead of StreamsConfig in KafkaStreams constructor21.0.0
135KIP-244: Add Record Header support to Kafka Streams Processor API2.0.0
136KIP-189: Improve principal builder interface and add support for SASL243: Make ProducerConfig and ConsumerConfig constructors public1.01.0
137KIP-188 - Add new metrics to support health checks239 Add queryableStoreName() to GlobalKTable1.01.0
138KIP-187 - Add cumulative count metric for all Kafka rate metrics238: Expose Kafka cluster ID in Connect REST API1.01.0
139KIP-186: Increase offsets retention default to 7 days237: More Controller Health Metrics2.0.0
140KIP-235: Add DNS alias support for secured connection2.1.0
141KIP-182: Reduce Streams DSL overloads and allow easier use of custom storage engines233: Simplify StreamsBuilder#addGlobalStore1.01.0
142KIP-231: Improve the Required ACL of ListGroups API2.1.0
143KIP-177: Consumer perf tool should count rebalance time229: DeleteGroups API1.01.0
144KIP-227 - Introduce Incremental FetchRequests to Increase Partition Scalability1.1.0
145KIP-175: Additional '--describe' views for ConsumerGroupCommand226 - Dynamic Broker Configuration1.1.0
146KIP-174 - Deprecate and remove internal converter configs in WorkerConfig225 - Use tags for consumer “records.lag” metrics1.12.0.0
147KIP-173224: Add prefix to StreamsConfig to enable setting default internal topic configsconfiguration parameter `retries` to Streams API1.01.0
148KIP-171 - Extend Consumer Group Reset Offset for Stream Application223 - Add per-topic min lead and per-partition lead metrics to KafkaConsumer2.01.1.0
149KIP-168: Add GlobalTopicCount and GlobalPartitionCount metric per cluster222 - Add Consumer Group operations to Admin API21.0.0
150KIP-167: Add interface for the state store restoration process221: Enhance DSL with Connecting Topic Creation and Repartition Hint2.4.0 (WIP)1.0.0
151KIP-164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics220: Add AdminClient into Kafka Streams' ClientSupplier1.01.0
152KIP-219 - Improve quota communication2.0.0
153KIP-162: Enable topic deletion by default218: Make KafkaFuture.Function java 8 lambda compatible1.01.0
154KIP-161: streams deserialization exception handlers215: Add topic regex support for Connect sinks1.01.0
155KIP-160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string214: Add zookeeper.max.in.flight.requests config to the broker1.11.0.0
156KIP-157 - Add consumer config options to streams reset tool213 Support non-key joining in KTable2.4.0 (WIP)1.0.0
157KIP-212: Enforce set of legal characters for connector names1.1.0
158KIP-211: Revise Expiration Semantics of Consumer Group Offsets2.1.0
159KIP-154 Add Kafka Connect configuration properties for creating internal topics210 - Provide for custom error handling when Kafka Streams fails to produce1.1.00.11.0.0
160KIP-153: Include only client traffic in BytesOutPerSec metric208: Add SSL support to Kafka Connect REST interface1.1.00.11.0.0
161KIP-152 - Improve diagnostics for SASL authentication failures207: Offsets returned by ListOffsetsResponse should be monotonically increasing even during a partition leader change2.21.0.0
162KIP-206: Add support for UUID serialization and deserialization2.1.0
163KIP-150 - Kafka-Streams Cogroup2.3.0 (WIP)205: Add all() and range() API to ReadOnlyWindowStore1.1.0
164KIP-149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner204 : Adding records deletion operation to the new Admin Client API1.1.0 (partially implemented)(WIP for 2.3.0)
165KIP-146 - Classloading Isolation in Connect

0.11.0.0

166KIP-145 - Expose Record Headers in Kafka Connect203: Add toLowerCase support to sasl.kerberos.principal.to.local rule 1.1.0
167166KIP-144: Exponential backoff for broker reconnect attempts202: Move merge() from StreamsBuilder to KStream10.11.0.0
168167KIP-143: Controller Health Metrics198: Remove ZK dependency from Streams Reset Tool1.0.0
168KIP-197 Connect REST API should include the connector type when describing a connector10.11.0.0
169KIP-140: Add administrative RPCs for adding, deleting, and listing ACLs196: Add metrics to Kafka Connect framework10.11.0.0
170KIP-138: Change punctuate semantics195: AdminClient.createPartitions1.0.0
171KIP-137: Enhance TopicCommand --describe to show topics marked for deletion192 : Provide cleaner semantics when idempotence is enabled1.0.11.0.0
172KIP-136: Add Listener name to SelectorMetrics tags191: KafkaConsumer.subscribe() overload that takes just Pattern1.0.11.0.0
173KIP-134: Delay initial consumer group rebalance190: Handle client-ids consistently between clients and brokers10.11.0.0
174KIP-133: Describe and Alter Configs Admin APIs189: Improve principal builder interface and add support for SASL10.11.0.0
175KIP-188 - Add new metrics to support health checks1.0.0
176KIP-129: Streams Exactly-Once Semantics187 - Add cumulative count metric for all Kafka rate metrics1.0.11.0.0
177KIP-128: Add ByteArrayConverter for Kafka Connect186: Increase offsets retention default to 7 days2.0.11.0.0
178KIP-126 183 - Allow KafkaProducer to split and resend oversized batches.Change PreferredReplicaLeaderElectionCommand to use AdminClient2.20.11.0.0
179KIP-124 - Request rate quotas182: Reduce Streams DSL overloads and allow easier use of custom storage engines1.0.11.0.0
180KIP-123: Allow per stream/table timestamp extractor180: Add a broker metric specifying the number of consumer group rebalances in progress1.10.11.0.0
181KIP-122177: Add Reset Consumer Group Offsets toolingConsumer perf tool should count rebalance time10.11.0.0
182KIP-176: Remove deprecated new-consumer option for tools2.0.0
183KIP-120: Cleanup Kafka Streams builder API175: Additional '--describe' views for ConsumerGroupCommand1.01.0
184KIP-119: Drop Support for Scala 2.10 in Kafka 0.110.11.0.0174 - Deprecate and remove internal converter configs in WorkerConfig2.0.0
185KIP-118: Drop Support for Java 7173: Add prefix to StreamsConfig to enable setting default internal topic configs12.0.0
186KIP-117: Add a public AdminClient API for Kafka admin operations-171 - Extend Consumer Group Reset Offset for Stream Application1.10.11.0.0
187KIP-115: Enforce offsets.topic.replication.factor upon __consumer_offsets 168: Add GlobalTopicCount and GlobalPartitionCount metric per cluster1 auto topic creation0.11.0.0
188KIP-114: KTable state stores and improved semantics167: Add interface for the state store restoration process1.0.11.0.0
189

KIP-

113: Support replicas movement between log directories

164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics

1.10.0
190

KIP-

163: Lower the Minimum Required ACL Permission of OffsetFetch

1.0.0
191KIP-162: Enable topic deletion by default1.0.0
192KIP-109: Old Consumer Deprecation161: streams deserialization exception handlers1.0.11.0.0
193KIP-108: Create Topic Policy160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string1.00.10.2.0
194KIP-157 - Add consumer config options to streams reset tool1.0.0
195KIP-156 Add option "dry run" to Streams application reset tool0.11.0.0
196KIP-155 - Add range scan for windowed state stores0.11.0.0
197KIP-104: Granular Sensors for Streams 154 Add Kafka Connect configuration properties for creating internal topics0.1011.20.0
198KIP-103: Separation of Internal and External traffic153: Include only client traffic in BytesOutPerSec metric0.1011.20.0
199KIP-102 - Add close with timeout for consumers152 - Improve diagnostics for SASL authentication failures1.0.0.10.2.0
200KIP-101 - Alter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation151 Expose Connector type in REST API0.11.0.0
201KIP-100 150 - Relax Type constraints in Kafka-Streams APICogroup02.10.2.04.0 (WIP)
202KIP-99: Add Global Tables to Kafka Streams149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner1.1.0 (partially implemented)
(WIP for 2.4.0)0.10.2.0
203KIP-98 - Exactly Once Delivery and Transactional Messaging146 - Classloading Isolation in Connect

0.11.0.0

204KIP-97: Improved Kafka Client RPC Compatibility Policy-145 - Expose Record Headers in Kafka Connect1.1.0.10.2.0
205KIP-96 - Add per partition metrics for in-sync and assigned replica count144: Exponential backoff for broker reconnect attempts0.1011.20.0
206KIP-94 Session Windows143: Controller Health Metrics0.1011.20.0
207KIP-93: Improve invalid timestamp handling in Kafka Streams140: Add administrative RPCs for adding, deleting, and listing ACLs0.1011.20.0
208KIP-92 - Add per partition lag metrics to KafkaConsumer138: Change punctuate semantics1.0.0.10.2.0
209KIP-91 Provide Intuitive User Timeouts in The Producer137: Enhance TopicCommand --describe to show topics marked for deletion0.11.02.1.0
210KIP-90 - Remove zkClient dependency from Streams136: Add Listener name to SelectorMetrics tags0.1011.20.0
211KIP-89: Allow sink connectors to decouple flush and offset commit134: Delay initial consumer group rebalance0.1011.20.0
212KIP-88: OffsetFetch Protocol Update133: Describe and Alter Configs Admin APIs0.1011.20.0
213KIP-130: Expose states of active tasks to KafkaStreams public API1.0.0
214KIP-85: Dynamic JAAS configuration for Kafka clients129: Streams Exactly-Once Semantics0.1011.20.0
215KIP-84: Support SASL SCRAM mechanisms128: Add ByteArrayConverter for Kafka Connect0.1011.20.0
216KIP-82 - Add Record Headers126 - Allow KafkaProducer to split and resend oversized batches.0.11.0.0
217KIP-81: Bound Fetch memory usage in the consumer124 - Request rate quotas0.11.0.02.2.0 (WIP)
218KIP-79 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer123: Allow per stream/table timestamp extractor0.1011.10.0
219KIP-78: Cluster Id122: Add Reset Consumer Group Offsets tooling0.1011.10.0
220KIP-77: Improve Kafka Streams Join Semantics121: Add KStream peek method

0.

10

11.

2

0.0

221KIP-75 - Add per-connector Converters120: Cleanup Kafka Streams builder API1.0.0.10.1.0
222KIP-74: Add Fetch Response Size Limit in Bytes119: Drop Support for Scala 2.10 in Kafka 0.110.1011.10.0
223KIP-73: Replication Quotas118: Drop Support for Java 72.00.10.1.0
224KIP-72117: Allow putting a bound on memory consumed by Incoming request Add a public AdminClient API for Kafka admin operations0.111.0.0
225KIP-71: Enable log compaction and deletion to co-exist115: Enforce offsets.topic.replication.factor upon __consumer_offsets auto topic creation0.1011.10.0
226KIP-70: Revise Partition Assignment Semantics on New Consumer's Subscription Change114: KTable state stores and improved semantics0.1011.10.0
227KIP-67: Queryable state for Kafka Streams113: Support replicas movement between log directories1.0.10.1.0
228KIP-66: Single Message Transforms for Kafka Connect112: Handle disk failure for JBOD10.10.2.0 / 0.11.0.0
229KIP-110: Add Codec for ZStandard Compression2.1.0
230KIP-63: Unify store and downstream caching in streams109: Old Consumer Deprecation0.11.00.10.1.0
231KIP-62: Allow consumer to send heartbeats from a background thread108: Create Topic Policy0.10.12.0
232KIP-60 - Make Java client classloading more flexible107: Add deleteRecordsBefore() API in AdminClient0.1011.10.0
233

KIP-

58 - Make Log Compaction Point Configurable

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

0.1011.10.0
234KIP-57 - Interoperable LZ4 Framing105: Addition of Record Level for Sensors0.10.02.0
235KIP-56: Allow cross origin HTTP requests on all HTTP methods104: Granular Sensors for Streams 0.10.02.0
236KIP-55: Secure Quotas for Authenticated Users103: Separation of Internal and External traffic0.10.12.0
237KIP-54: Sticky Partition Assignment Strategy-102 - Add close with timeout for consumers0.1110.02.0
238KIP-52: Connector Control APIs101 - Alter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation0.1011.0.0
239KIP-51 - List Connectors REST 100 - Relax Type constraints in Kafka Streams API0.10.02.0
240KIP-50 - Move Authorizer to o.a.k.common package99: Add Global Tables to Kafka Streams0.10.12.0
241KIP-48 Delegation token support for Kafka1.1.0242KIP-45 - Standardize all client sequence interaction on j.u.Collection.98 - Exactly Once Delivery and Transactional Messaging0.1011.0.0
243242KIP-4397: Kafka SASL enhancementsImproved Kafka Client RPC Compatibility Policy0.10.02.0
244243KIP-42: Add Producer and Consumer Interceptors96 - Add per partition metrics for in-sync and assigned replica count0.10.2.0
244KIP-94 Session Windows0.10.2.0
245KIP-41: Consumer Max Records93: Improve invalid timestamp handling in Kafka Streams0.10.02.0
246KIP-40: ListGroups and DescribeGroup-92 - Add per partition lag metrics to KafkaConsumer0.910.02.0
247KIP-38: ZooKeeper Authentication91 Provide Intuitive User Timeouts in The Producer2.1.00.9.0.0
248KIP-36 - Rack aware replica assignment90 - Remove zkClient dependency from Streams0.10.02.0
249KIP-35 - Retrieving protocol version89: Allow sink connectors to decouple flush and offset commit0.10.02.0
250KIP-33 - Add a time based log index88: OffsetFetch Protocol Update0.10.12.0
251KIP-32 - Add timestamps to Kafka message86: Configurable SASL callback handlers2.0.10.0.0
252KIP-31 - Move to relative offsets in compressed message sets85: Dynamic JAAS configuration for Kafka clients0.10.02.0
253KIP-28 - Add a processor client84: Support SASL SCRAM mechanisms0.10.02.0
254KIP-26 82 - Add Kafka Connect framework for data import/exportRecord Headers0.911.0.0
255KIP-25 - System test improvements81: Bound Fetch memory usage in the consumer2.4.0 (WIP)0.9.0.0
256KIP-22 - Expose a Partitioner interface in the new producer79 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer0.910.01.0
257KIP-21 - Dynamic Configuration78: Cluster Id0.910.01.0 (WIP)
258KIP-20 Enable log preallocate to improve consume performance under windows and some old Linux file system77: Improve Kafka Streams Join Semantics0.910.02.0
259KIP-19 75 - Add a request timeout to NetworkClientper-connector Converters0.910.01.0
260KIP-16 - Automated Replica Lag Tuning74: Add Fetch Response Size Limit in Bytes0.910.01.0
261KIP-15 - Add a close method with a timeout in the producer73: Replication Quotas0.910.01.0
262KIP-13 - Quota Design72: Allow putting a bound on memory consumed by Incoming request 10.9.0.0
263KIP-12 - Kafka Sasl/Kerberos and SSL implementation71: Enable log compaction and deletion to co-exist0.910.01.0
264KIP-11 - Kafka Authorizer design70: Revise Partition Assignment Semantics on New Consumer's Subscription Change0.910.01.0
265KIP-8 - Add a flush method to the producer API67: Queryable state for Kafka Streams0.910.01.0
266KIP-4 - Metadata Protocol Changes66: Single Message Transforms for Kafka Connect0.10.2.0 / 0.11.0.0
267KIP-4 - Command line and centralized administrative operations65: Expose timestamps to Connect0.910.01.0,
268KIP-63: Unify store and downstream caching in streams0.10.01.0,
269KIP-62: Allow consumer to send heartbeats from a background thread0.10.1.0
268270KIP-3 - Mirror Maker Enhancement60 - Make Java client classloading more flexible0.910.01.0
269271KIP-2 - Refactor brokers to allow listening on multiple ports and IPs58 - Make Log Compaction Point Configurable0.910.01.0
270272KIP-1 - Remove support of request.required.acks57 - Interoperable LZ4 Framing0.910.0.0

...

273KIP-56: Allow cross origin HTTP requests on all HTTP methods0.10.0.0
274KIP-55: Secure Quotas for Authenticated Users0.10.1.0
275KIP-54: Sticky Partition Assignment Strategy0.11.0.0
276KIP-52: Connector Control APIs0.10.0.0
277KIP-51 - List Connectors REST API0.10.0.0
278KIP-48 Delegation token support for Kafka1.1.0
279KIP-45 - Standardize all client sequence interaction on j.u.Collection.0.10.0.0
280KIP-43: Kafka SASL enhancements0.10.0.0
281KIP-42: Add Producer and Consumer Interceptors0.10.0.0
282KIP-41: Consumer Max Records0.10.0.0
283KIP-40: ListGroups and DescribeGroup0.9.0.0
284KIP-38: ZooKeeper Authentication0.9.0.0
285KIP-36 - Rack aware replica assignment0.10.0.0
286KIP-35 - Retrieving protocol version0.10.0.0
287KIP-33 - Add a time based log index0.10.1.0
288KIP-32 - Add timestamps to Kafka message0.10.0.0
289KIP-31 - Move to relative offsets in compressed message sets0.10.0.0
290KIP-28 - Add a processor client0.10.0.0
291KIP-26 - Add Kafka Connect framework for data import/export0.9.0.0
292KIP-25 - System test improvements0.9.0.0
293KIP-22 - Expose a Partitioner interface in the new producer0.9.0.0
294KIP-21 - Dynamic Configuration0.9.0.0 (WIP)
295KIP-20 Enable log preallocate to improve consume performance under windows and some old Linux file system0.9.0.0
296KIP-19 - Add a request timeout to NetworkClient0.9.0.0
297KIP-16 - Automated Replica Lag Tuning0.9.0.0
298KIP-15 - Add a close method with a timeout in the producer0.9.0.0
299KIP-13 - Quota Design0.9.0.0
300KIP-12 - Kafka Sasl/Kerberos and SSL implementation0.9.0.0
301KIP-11 - Kafka Authorizer design0.9.0.0
302KIP-8 - Add a flush method to the producer API0.9.0.0
303KIP-4 - Metadata Protocol Changes0.10.0.0
304KIP-4 - Command line and centralized administrative operations0.9.0.0, 0.10.0.0, 0.10.1.0
305KIP-3 - Mirror Maker Enhancement0.9.0.0
306KIP-2 - Refactor brokers to allow listening on multiple ports and IPs0.9.0.0
307KIP-1 - Remove support of request.required.acks0.9.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 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-435: Internal Partition Reassignment BatchingDiscussion
KIP-437: Custom replacement for MaskField SMTVoting in progress

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

406: GlobalStreamThread should honor custom offset policy.Discussion
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-300: Add Windowed KTable API in StreamsBuilderDiscussion
KIP-301: Schema Inferencing for JsonConverterDiscussion
KIP-304: Connect runtime mode improvements for container platformsDiscussion
KIP-307: Allow to define custom processor names with KStreams DSLDiscussion
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 transparent data encryption functionalityDiscussion
KIP-325: Extend Consumer Group Command to Show Beginning OffsetsVoting in Progress
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-345: Introduce static membership protocol to reduce consumer rebalancesAccepted
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-354: Add a Maximum Log Compaction LagAccepted
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" SelectionDiscussion
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-392: Allow consumers to fetch from closest replica438: Expose task, connector IDs in Connect APIDiscussion
KIP-395439: Encypt-then-MAC Delegation token metadataCleanup built-in Store interfacesDiscussion
KIP-441: Smooth Scaling Out for Kafka StreamsDiscussion
KIP-396: Add Commit/List Offsets Operations to AdminClient444: Augment metrics for Kafka StreamsDiscussion
KIP-397: Add methods to override fetch offsets based on timestamp447: Producer scalability for exactly once semanticsDiscussion
KIP-398448: Support reading trust store from classpathAdd State Stores Unit Test Support to Kafka Streams Test UtilsDiscussion
KIP-399: Extend ProductionExceptionHandler to cover serialization exceptions450: Sliding Window Aggregations in the DSLDiscussion
KIP-400: Improve exit status in case of errors in ConsoleProducer452: Tool to view cluster statusDiscussion, JIRA existsDiscussion
KIP-401: TransformerSupplier/ProcessorSupplier StateStore connecting457: Add DISCONNECTED status to Kafka StreamsDiscussion Voting in progress
KIP-403: Increase ProducerPerformance precision by using nanoTime459: Improve KafkaStreams#closeDiscussionDraft
KIP-405: Kafka Tiered Storage463: Auto-configure non-default Serdes passed alongside the TopologyBuilderUnder discussionDiscussion
KIP-466: Add support for List<T> serialization and deserializationVoting in progress
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

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-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-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-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 metrics to observe user poll behaviorUnder 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 responseUnder discussion
KIP-526: Reduce Producer Metadata Lookups for Large Number of TopicsUnder discussion

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

Discussion

KIP-411: Make default Kafka Connect worker task client IDs distinct

Accepted
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-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-429: Kafka Consumer Incremental Rebalance ProtocolDiscussion
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: Incremental Partition ReassignmentDiscussion
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: Deprecate Interface WindowStoreIteratorDiscussion
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-455: Create an Administrative API for Replica ReassignmentDiscussion
KIP-456: Helper classes to make it simpler to write test logic with TopologyTestDriver

Discussion

KIP-457: Add DISCONNECTED status to Kafka StreamsDiscussion 
KIP-458: Connector Client Config Override PolicyVoting in progress
KIP-459: Improve KafkaStreams#closeDiscussion
KIP-461: Improve Replica Fetcher behavior at handling partition failureDiscussion
KIP-463: Auto-configure non-default Serdes passed alongside the TopologyBuilderUnder discussion
KIP-464: Defaults for AdminClient#createTopicDiscussion


Dormant/inactive KIPs

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

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

...