Release Dates
- KIP Freeze: Sep 24, 2018 (a KIP must be accepted by this date in order to be considered for this release)
- Feature Freeze: Oct 1, 2018 (major features merged & working on stabilization, minor features have PR, release branch cut; anything not in this state will be automatically moved to the next release in JIRA)
- Code Freeze: Oct 15, 2018
- Release: Nov 20, 2018
...
The release manager is Dong Lin.
Release Features
This is a list of key features/improvements/bugfixes that we can include with release notes:
- Java 11 support
- Support for Zstandard, which achieves compression comparable to gzip with higher compression and especially decompression speeds (KIP-110)
- Avoid expiring committed offsets for active consumer group (KIP-211)
- Provide Intuitive User Timeouts in The Producer (KIP-91)
Kafka's replication protocol now supports improved fencing of zombies. Previously, under certain rare conditions, if a broker became partitioned from Zookeeper but not the rest of the cluster, then the logs of replicated partitions could diverge and cause data loss in the worst case (KIP-320).
- Streams API improvements (KIP-319, KIP-321, KIP-330, KIP-353, KIP-356)
- Admin script and admin client API improvements to simplify admin operation (KIP-231, KIP-308, KIP-322, KIP-324, KIP-338, KIP-340)
- DNS handling improvements (KIP-235, KIP-302)
How to Contribute
Before code freeze:
- Participate in votes and discussions to land or postpone the open KIPs.
- Review patches. We anticipate that this release will be bottlenecked mostly on reviews. The more reviewers, the more content we can fit in.
- Write unit/integration/system tests. We want to preserve the tradition of high-quality releases in Apache Kafka.
After code freeze:
- Write more unit/integration/system tests. We want to preserve the tradition of high-quality releases in Apache Kafka.
- Improve documentation
- Test the release candidates
- Open blocker JIRAs on critical issues found. Open non-blocker JIRAs on any other issues found.
- Fix critical bugs
- Review bug fixes
- Vote on RCs. Even though only PMC votes are binding, community votes are super important as we evaluate the readiness of the release
Open Issues
Jira | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Also feel free to refer to this release page for more details of the included tickets.
Planned KIP Content
Note: The planned content is not binding - final content will be based the features committed by branch-cutting date. See Kafka Improvement Proposals for the full list of KIPs.
KIP | JIRA | Component | Committer (reviewer) | Comment | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Clients | |||||||||||||||||||
KIP-110: Add Codec for ZStandard Compression |
| Broker, Clients | ||||||||||||||||||
KIP-206: Add support for UUID serialization and deserialization |
| Clients | ||||||||||||||||||
KIP-211: Revise Expiration Semantics of Consumer Group Offsets |
| Broker, Clients | ||||||||||||||||||
KIP-231: Improve the Required ACL of ListGroups API |
| Security | ||||||||||||||||||
KIP-235: Add DNS alias support for secured connection |
| Clients | ||||||||||||||||||
KIP-302 - Enable Kafka clients to use all DNS resolved IP addresses |
| Clients | ||||||||||||||||||
KIP-306: Configuration for Delaying Response to Failed Client Authentication |
| Client | ||||||||||||||||||
KIP-308: Support dynamic update of max.connections.per.ip/max.connections.per.ip.overrides configs |
| Broker | ||||||||||||||||||
KIP-312: Add Overloaded StreamsBuilder Build Method to Accept java.util.Properties |
| Streams | ||||||||||||||||||
KIP-319: Replace segments with segmentInterval in WindowBytesStoreSupplier |
| Streams | ||||||||||||||||||
KIP-321: Update TopologyDescription to better represent Source and Sink Nodes |
| Streams | ||||||||||||||||||
KIP-322: Return new error code for DeleteTopics API when topic deletion disabled |
| Tools | ||||||||||||||||||
KIP-324: Add method to get metrics() in AdminClient |
| AdminClient | ||||||||||||||||||
KIP-328: Ability to suppress updates for KTables |
| Streams | Matthias Sax | partially implemented in v2.1 | ||||||||||||||||
KIP-330: Add retentionPeriod in SessionBytesStoreSupplier |
| Streams | ||||||||||||||||||
KIP-332: Update AclCommand to use AdminClient API |
| Tools | ||||||||||||||||||
KIP-336: Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer |
| Clients | ||||||||||||||||||
KIP-338 Support to exclude the internal topics in kafka-topics.sh command |
| Tools | ||||||||||||||||||
KIP-340: Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file |
| Tools | ||||||||||||||||||
KIP-342: Add support for Custom SASL extensions in OAuthBearer authentication |
| Security | ||||||||||||||||||
KIP-353: Improve Kafka Streams Timestamp Synchronization |
| Streams | ||||||||||||||||||
KIP-356: Add withCachingDisabled() to StoreBuilder |
| Streams | Matthias Sax | |||||||||||||||||
KIP-357: Add support to list ACLs per principal |
| Tools | ||||||||||||||||||
KIP-358: Migrate Streams API to Duration instead of long ms times |
| Streams | ||||||||||||||||||
KIP-365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde |
| Streams | ||||||||||||||||||
KIP-366: Make FunctionConversions deprecated |
| Streams | ||||||||||||||||||
KIP-372: Naming Repartition Topics for Joins and Grouping |
| Streams |
Postponed to subsequent release
KIP | JIRA | Component | Committer | Comment | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
KIP-81: Bound Fetch memory usage in the consumer |
| Clients | ||||||||||
KIP-149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner |
| Streams | partially implemented in v1.1 | |||||||||
KIP-150 - Kafka-Streams Cogroup |
| Streams | ||||||||||
KIP-289: Improve the default group id behavior in KafkaConsumer |
| Clients | ||||||||||
KIP-313: Add KStream.flatTransform and KStream.flatTransformValues |
| Streams | ||||||||||
KIP-320: Allow fetchers to detect and handle log truncation |
| Broker,Clients | ||||||||||
KIP-328: Ability to suppress updates for KTables |
| Streams | partially implemented in v2.1 | |||||||||
KIP-331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde |
| Core, Streams | ||||||||||
KIP-339: Create a new IncrementalAlterConfigs API |
| AminClient | ||||||||||
KIP-341: Update Sticky Assignor's User Data Protocol |
| Clients | ||||||||||
KIP-359: Verify leader epoch in produce requests |
| Broker,Clients | ||||||||||
KIP-361: Add Consumer Configuration to Disable Auto Topic Creation |
| Clients | ||||||||||
KIP-367 Introduce close(Duration) to Producer and AdminClient instead of close(long, TimeUnit) |
| Clients,AdminClient | ||||||||||
KIP-368: Allow SASL Connections to Periodically Re-Authenticate |
| Broker,Clients |