Versions Compared

Key

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

...

To create your own KIP, click on

Create from template
templateName54329345
templateId54329345
titleKIP-NEXT: Insert Title Here
buttonLabelCreate KIP
. If you don't have permission, please send an email with your Wiki ID to dev@kafka.apache.org and request permission (http://kafka.apache.org/contact). Also add an entry to the table KIPs under discussion (for Streams API KIPs, please also add it to Kafka Streams sub page).

Table of Contents
476

Purpose

We want to make Kafka a core architectural component for users. We also support a large number of integrations with other tools, systems, and clients. Keeping this kind of usage health requires a high level of compatibility between releases — core architectural elements can't break compatibility or shift functionality from release to release. As a result each new major feature or public api has to be done in a way that we can stick with it going forward.

...

KIP round-up

Next KIP Number: 510530

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

...

488: Clean up Sum,Count,Total Metrics480: Sticky Partitioner479 Materialized to Join465: Add Consolidated Connector Endpoint to Connect REST API3460: Admin Leader Election RPC455: 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.02.4.0 (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 deprecated2.1353: 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 Nodes77308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides.0305: Add Connect primitive number converters0295 Add Streams Configuration Allowing for Optional Topology Optimization0279: Fix log divergence between leader and follower after fast leader fail over0277 - Fine Grained ACL for CreateTopics API0276 - Add StreamsConfig prefix for different consumers0274: Kafka Streams Skipped Records Metrics0272 API version tag to broker's RequestsPerSec metric268: Simplify Kafka Streams Rebalance Metadata Upgrade0267 Processor Unit Test Support to Kafka Streams Test Utils0265: Make Windowed Serde to public APIs261: Add Single Value Fetch in Window Stores251: Allow timestamp manipulation in Processor API249: Add Delegation Token Operations to KafkaAdminClient0245: Use Properties instead of StreamsConfig in KafkaStreams constructor243: Make ProducerConfig and ConsumerConfig constructors public1.1239 Add queryableStoreName() to GlobalKTable1.1237: More Controller Health Metrics231: Improve the Required ACL of ListGroups API1229 DeleteGroups API1.1227 - Introduce Incremental FetchRequests to Increase Partition Scalability1.1224: Add configuration parameter `retries` to Streams API1.1221: Enhance DSL with Connecting Topic Creation and Repartition Hint4WIP219 - 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.181145 - Expose Record Headers in Kafka Connect1.1133: 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.11.124 - Request rate quotas-123: Allow per stream/table timestamp extractor110 Codec for ZStandard Compression2.1104: Granular Sensors for Streams 0.10.286: Configurable SASL callback handlers0

KIP (please keep this sorted by KIP number)

Release

1KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
2KIP-511: Collect and Expose Client's Name and Version in the Brokers2.4.02KIP-484: Expose metrics for group and transaction metadata loading duration2.4.0 (WIP)
3KIP-504 - Add new Java Authorizer Interface2.4.0 (WIP)
4KIP-503: Add metric for number of topics marked for deletion2.4.0 (WIP)
5KIP-476497: Add Java AdminClient Interfaceinter-broker API to alter ISR2.4.0 (WIP)
6KIP-467: Augment ProduceResponse error messaging for specific culprit records496: Administrative API to delete consumer offsets2.4.0 (WIP)
7KIP-495: Dynamically Adjust Log Levels in Connect2.4.0 (WIP)
8KIP-464: Defaults for AdminClient#createTopic488: Clean up Sum,Count,Total Metrics2.4.0
9KIP-462: Use local thread id for KStreams484: Expose metrics for group and transaction metadata loading duration2.34.0 (WIP)
10KIP-461: Improve Replica Fetcher behavior at handling partition failure482: The Kafka Protocol should Support Optional Tagged Fields2.34.0 (WIP)
11KIP-481: SerDe Improvements for Connect Decimal type in JSON2.4.0 (WIP)
12KIP-458: Connector Client Config Override Policy480: Sticky Partitioner2.34.0
13KIP-479: Add Materialized to Join2.4.0(WIP)
14KIP-454: Expansion of the ConnectClusterState interface476: Add Java AdminClient Interface2.34.0
15KIP-475: New Metrics to Measure Number of Tasks on a Connector2.4.0 (WIP)
16KIP-449: Add connector contexts to log messages in Connect workers 474: To deprecate WindowStore#put(key, value)2.34.0 (WIP)
17KIP-471: Expose RocksDB Metrics in Kafka Streams

2.4.0 (WIP)

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

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

KIP-

411: Make default Kafka Connect worker task client IDs distinct

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

KIP-

379: Multiple Consumer Group Management

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

/ 2.3.0

7677KIP-312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties351: Add --under-min-isr option to describe topics command2.13.0
78KIP-346: Improve LogCleaner behavior on error2.1
7879KIP-307: Allow to define custom processor names with KStreams DSL345: Introduce static membership protocol to reduce consumer rebalances2.34.0 (partial)79KIP-306: Configuration for Delaying Response to Failed Authentication2.1WIP), partially available in 2.3.0
80KIP-342 Add support for custom SASL extensions in OAuthBearer authentication2.1.0
81KIP-303: Add Dynamic Routing in Streams Sink341: Update Sticky Assignor's User Data Protocol2.03.0
82KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses-340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file2.1.0
83KIP-300: Add Windowed KTable API in StreamsBuilder339: Create a new IncrementalAlterConfigs API2.43.0
84KIP-298: Error Handling in Connect338 Support to exclude the internal topics in kafka-topics.sh command2.01.0
85KIP-297: Externalizing Secrets for Connect Configurations336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer2.01.0
86KIP-332: Update AclCommand to use AdminClient API2.1.0
87KIP-294 - Enable TLS hostname verification by default331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde2.03.0
88KIP-292330: Add transformValues() method to KTableretentionPeriod in SessionBytesStoreSupplier2.01.0
89KIP-290: Support for Prefixed ACLs328: Ability to suppress updates for KTables2.1.0 (partially implemented) / 2.3.0 (WIP)
90KIP-289: Improve the default group id behavior in KafkaConsumer324: Add method to get metrics() in AdminClient2.21.0
91KIP-285: Connect Rest Extension Plugin322: Return new error code for DeleteTopics API when topic deletion disabled.2.01.0
92KIP-284: Set default retention ms for Streams repartition topics to Long.MAX_VALUE321: Update TopologyDescription to better represent Source and Sink Nodes2.01.0
93KIP-283: Efficient Memory Usage for Down-Conversion320: Allow fetchers to detect and handle log truncation2.1.0 (partially implemented) / 2.22.0.0
94KIP-282: Add the listener name to the authentication context319: Replace segments with segmentInterval in WindowBytesStoreSupplier2.01.0
95KIP-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

96KIP-312 Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties2.1.0
97KIP-278 - Add version option to Kafka's commands309: Add toUpperCase support to sasl.kerberos.principal.to.local rule2.04.0
98KIP-308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides2.1.0
99KIP-307: Allow to define custom processor names with KStreams DSL2.3.0 (partial)
100KIP-306: Configuration for Delaying Response to Failed Authentication2.1.0
101KIP-305: Add Connect primitive number converters2.0.0
102KIP-270 - A Scala Wrapper Library for Kafka Streams303: Add Dynamic Routing in Streams Sink2.0.0
103KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses2.1.0
104KIP-300: Add Windowed KTable API in StreamsBuilder2.4.0
105KIP-266: Fix consumer indefinite blocking behavior298: Error Handling in Connect2.0.0
106KIP-297: Externalizing Secrets for Connect Configurations2.0.0
107KIP-295 Add Streams Configuration Allowing for Optional Topology Optimization2.0.0
108KIP-258: Allow to Store Record Timestamps in RocksDB-294 - Enable TLS hostname verification by default2.30.0 (partially implemented)
109

KIP-

257 - Configurable Quota Management

291: Separating controller connections and requests from the data plane

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

KIP

-134: Delay initial consumer group rebalance

-164 - Add UnderMinIsrPartitionCount and per-partition UnderMinIsr metrics

10.11.0.0
192

KIP-

163: Lower the Minimum Required ACL Permission of OffsetFetch

1.0.0
193KIP-162: Enable topic deletion by default1.0.0
194KIP-129: Streams Exactly-Once Semantics161: streams deserialization exception handlers10.11.0.0
195KIP-128: Add ByteArrayConverter for Kafka Connect160: Augment KStream.print(), KStream.writeAsText() to allow users pass in extra parameters in the printed string10.11.0.0
196KIP-157 - Add consumer config options to streams reset tool1.0.0
197KIP-156 Add option "dry run" to Streams application reset tool0.11.0.0
198KIP-155 - Add range scan for windowed state stores0.11.0.0
199KIP-122: Add Reset Consumer Group Offsets tooling154 Add Kafka Connect configuration properties for creating internal topics0.11.0.0
200KIP-121: Add KStream peek method153: Include only client traffic in BytesOutPerSec metric0.11.0.0
201KIP-120: Cleanup Kafka Streams builder API-152 - Improve diagnostics for SASL authentication failures1.0.0
202KIP-119: Drop Support for Scala 2.10 in Kafka 0.11151 Expose Connector type in REST API0.11.0.0
203KIP-118: Drop Support for Java 7-150 - Kafka-Streams Cogroup2.0.04.0 (WIP)
204KIP-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
205KIP-115: Enforce offsets.topic.replication.factor upon __consumer_offsets auto topic creation-146 - Classloading Isolation in Connect

0.11.0.0

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

0.

10

11.

2

0.0

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

KIP

-81: Bound Fetch memory usage in the consumer
2.4.0 (WIP)

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

0.11.0.0
236KIP-105: Addition of Record Level for Sensors236KIP-79 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer0.10.12.0
237KIP-78: Cluster Id104: Granular Sensors for Streams 0.10.12.0
238KIP-77: Improve Kafka Streams Join Semantics103: Separation of Internal and External traffic0.10.2.0
239KIP-75 102 - Add per-connector Convertersclose with timeout for consumers0.10.12.0
240KIP-74: Add Fetch Response Size Limit in Bytes101 - Alter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation0.1011.10.0
241KIP-73: Replication Quotas-100 - Relax Type constraints in Kafka Streams API0.10.12.0
242KIP-72: Allow putting a bound on memory consumed by Incoming request 99: Add Global Tables to Kafka Streams0.10.21.0.0
243KIP-71: Enable log compaction and deletion to co-exist-98 - Exactly Once Delivery and Transactional Messaging0.1011.10.0
244KIP-70: Revise Partition Assignment Semantics on New Consumer's Subscription Change97: Improved Kafka Client RPC Compatibility Policy0.10.12.0
245KIP-67: Queryable state for Kafka Streams96 - Add per partition metrics for in-sync and assigned replica count0.10.12.0
246KIP-66: Single Message Transforms for Kafka Connect94 Session Windows0.10.2.0 / 0.11.0.0
247KIP-65: Expose timestamps to Connect93: Improve invalid timestamp handling in Kafka Streams0.10.12.0
248KIP-63: Unify store and downstream caching in streams92 - Add per partition lag metrics to KafkaConsumer0.10.12.0
249KIP-62: Allow consumer to send heartbeats from a background thread91 Provide Intuitive User Timeouts in The Producer2.0.10.1.0
250KIP-60 - Make Java client classloading more flexible90 - Remove zkClient dependency from Streams0.10.12.0
251KIP-58 - Make Log Compaction Point Configurable89: Allow sink connectors to decouple flush and offset commit0.10.12.0
252KIP-57 - Interoperable LZ4 Framing88: OffsetFetch Protocol Update0.10.02.0
253KIP-56: Allow cross origin HTTP requests on all HTTP methods86: Configurable SASL callback handlers20.10.0.0
254KIP-55: Secure Quotas for Authenticated Users85: Dynamic JAAS configuration for Kafka clients0.10.12.0
255KIP-54: Sticky Partition Assignment Strategy84: Support SASL SCRAM mechanisms0.1110.02.0
256KIP-52: Connector Control APIs-82 - Add Record Headers0.1011.0.0
257KIP-51 - List Connectors REST API81: Bound Fetch memory usage in the consumer2.4.0 (WIP)0.10.0.0
258KIP-48 Delegation token support for Kafka1.1.079 - ListOffsetRequest/ListOffsetResponse v1 and add timestamp search methods to the new consumer0.10.1.0
259KIP-78: Cluster Id259KIP-45 - Standardize all client sequence interaction on j.u.Collection.0.10.01.0
260KIP-4377: Improve Kafka SASL enhancementsStreams Join Semantics0.10.02.0
261KIP-42: Add Producer and Consumer Interceptors75 - Add per-connector Converters0.10.01.0
262KIP-41: Consumer Max Records74: Add Fetch Response Size Limit in Bytes0.10.01.0
263KIP-40: ListGroups and DescribeGroup73: Replication Quotas0.910.01.0
264KIP-38: ZooKeeper Authentication72: Allow putting a bound on memory consumed by Incoming request 10.9.0.0
265KIP-36 - Rack aware replica assignment71: Enable log compaction and deletion to co-exist0.10.01.0
266KIP-35 - Retrieving protocol version70: Revise Partition Assignment Semantics on New Consumer's Subscription Change0.10.01.0
267KIP-33 - Add a time based log index67: Queryable state for Kafka Streams0.10.1.0
268KIP-32 - Add timestamps to Kafka message66: Single Message Transforms for Kafka Connect0.10.2.0 / 0.11.0.0
269KIP-31 - Move to relative offsets in compressed message sets65: Expose timestamps to Connect0.10.01.0
270KIP-28 - Add a processor client63: Unify store and downstream caching in streams0.10.01.0
271KIP-26 - Add Kafka Connect framework for data import/export62: Allow consumer to send heartbeats from a background thread0.910.01.0
272KIP-25 - System test improvements60 - Make Java client classloading more flexible0.910.01.0
273KIP-22 - Expose a Partitioner interface in the new producer58 - Make Log Compaction Point Configurable0.910.01.0
274KIP-21 - Dynamic Configuration57 - Interoperable LZ4 Framing0.910.0.0 (WIP)
275KIP-20 Enable log preallocate to improve consume performance under windows and some old Linux file system56: Allow cross origin HTTP requests on all HTTP methods0.910.0.0
276KIP-19 - Add a request timeout to NetworkClient55: Secure Quotas for Authenticated Users0.910.01.0
277KIP-16 - Automated Replica Lag Tuning54: Sticky Partition Assignment Strategy0.911.0.0
278KIP-15 - Add a close method with a timeout in the producer52: Connector Control APIs0.910.0.0
279KIP-13 - Quota Design51 - List Connectors REST API0.910.0.0
280KIP-12 - Kafka Sasl/Kerberos and SSL implementation48 Delegation token support for Kafka1.10.9.0.0
281KIP-11 - Kafka Authorizer design45 - Standardize all client sequence interaction on j.u.Collection.0.910.0.0
282KIP-8 - Add a flush method to the producer API43: Kafka SASL enhancements0.910.0.0
283KIP-4 - Metadata Protocol Changes42: Add Producer and Consumer Interceptors0.10.0.0
284KIP-4 - Command line and centralized administrative operations41: Consumer Max Records0.910.0.0,
285KIP-40: ListGroups and DescribeGroup0.109.0.0
286KIP-38: ZooKeeper Authentication, 0.109.10.0
285287KIP-3 - Mirror Maker Enhancement36 - Rack aware replica assignment0.910.0.0
286288KIP-2 - Refactor brokers to allow listening on multiple ports and IPs35 - Retrieving protocol version0.910.0.0
287289KIP-1 - Remove support of request.required.acks33 - Add a time based log index0.910.01.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

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

KIP-499: Create a controller RPC for changing configurations416 Notify SourceTask of ACK'd offsets, metadata440: Extend Connect Converter to support headers444: Augment metrics for Kafka Streams470: TopologyTestDriver test input and output usability improvements
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-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" SelectionAcceptedKIP-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 ManagementAcceptedKIP-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 responseDiscussionKIP-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 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-401: TransformerSupplier/ProcessorSupplier StateStore connectingVoting in progressKIP-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 partitionsKIP-410: Add metric for request handler thread pool utilization by request typepartitions


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-418: A method-chaining way to branch KStream426: Persist Broker Id to ZookeeperDiscussion
KIP-431: Support of printing additional ConsumerRecord fields in DefaultMessageFormatterVoting in progressDiscussion, JIRA exists with pull-request
KIP-435: Internal Partition Reassignment BatchingDiscussion
KIP-419: Safely notify Kafka Connect SourceTask is stopped437: Custom replacement for MaskField SMTVoting in progress, JIRA exists with pull-request
KIP-421: Support resolving externalized secrets in AbstractConfig438: Expose task, connector IDs in Connect APIDiscussionAccepted
KIP-422: Add support for client quota configuration in the Kafka Admin Client439: Cleanup built-in Store interfacesDiscussionDiscussion, JIRA exists with pull-request
KIP-423: Add JoinReason to Consumer Join Group Protocol441: Smooth Scaling Out for Kafka StreamsDiscussion
KIP-424: Allow suppression of intermediate events based on wall clock time444: Augment metrics for Kafka StreamsDiscussion
KIP-426: Persist Broker Id to Zookeeper447: Producer scalability for exactly once semanticsDiscussion
KIP-431448: Support of printing additional ConsumerRecord fields in DefaultMessageFormatterAdd State Stores Unit Test Support to Kafka Streams Test UtilsDiscussionVoting in progress, JIRA exists with pull-request
KIP-434: Add Replica Fetcher and Log Cleaner Count Metrics450: Sliding Window Aggregations in the DSLDiscussion
KIP-435: Internal Partition Reassignment Batching452: Tool to view cluster statusDiscussion, JIRA existsDiscussion
KIP-437: Custom replacement for MaskField SMT457: Add DISCONNECTED status to Kafka StreamsDiscussion Voting in progress, JIRA exists with pull-request
KIP-438: Expose task, connector IDs in Connect API459: Improve KafkaStreams#closeDiscussion
KIP-439: Cleanup built-in Store interfaces463: Auto-configure non-default Serdes passed alongside the TopologyBuilderUnder discussionDiscussion
KIP-466: Add support for List<T> serialization and deserializationVoting in progress
KIP-441: Smooth Scaling Out for Kafka Streams468: Avoid decompression of record when validate record at server in the scene of inPlaceAssignment .Under discussionDiscussion
KIP-Discussion
KIP-447: Producer scalability for exactly once semanticsDiscussion
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
470: TopologyTestDriver test input and output usability improvementsVoting in progress
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 groupKIP-468: Avoid decompression of record when validate record at server in the scene of inPlaceAssignment .Under discussion
KIP-491: Preferred Leader Deprioritized List (Temporary Blacklist)Under discussion
KIP-471: Expose RocksDB Metrics in Kafka StreamsAccepted494: Connect REST Endpoint to get Transformations (SMTs)
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-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-482: Optional fields in the Kafka Protocol
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 for Transformations (SMTs) and other Plugins
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 EndpointsVoting in progress, draft available
KIP-508: Make Suppression State QueriableUnder discussion
KIP-509: Rebalance and restart ProducersUnder discussion
KIP-510: Metrics library upgradeUnder discussion
KIP-512: Adding headers to RecordMetaDataSent mail to dev discussion group
KIP-513: Distinguish between Key and Value serdes in scala wrapper library for kafka 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 defaultVoting in progress

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-527: Add NullSerde to SerdesUnder discussion
KIP-528: Deprecate PartitionGrouper configuration and interfaceUnder discussion
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-500: Replace ZooKeeper with a Self-Managed Metadata QuorumKIP-502: Connect SinkTask.put(...) to specify ArrayList<SinkRecord> in SignatureKIP-503: Add metric for number of topics marked for deletionKIP-504 - Add new Java Authorizer Interface
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 upgrade


Dormant/inactive KIPs

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

...