Child pages
  • Release Plan
Skip to end of metadata
Go to start of metadata

Release Dates

  • KIP Freeze: May 10, 2017 (a KIP must be accepted by this date in order to be considered for this release)
  • Feature Freeze: May 17, 2017 (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: May 31, 2017 (first RC created now)
  • Release: June 14, 2017 

Release Manager
These dates are goals and subject to change, but we expect to stay on the Time Based Release Plan unless unexpected critical issues come up. While the target release date is fixed at ~2w after code freeze, RCs will roll out as needed until the release vote passes.

The release manager is Ismael Juma.

Release Features

This is a list of key features/improvements/bugfixes that we can include with release notes (WIP):

  • Exactly-once delivery and transactional messaging
  • Streams exactly-once semantics
  • AdminClient
  • Record headers
  • Request rate quotas
  • Improved resiliency: replication protocol improvement and single-threaded controller

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 system tests. We want to preserve the tradition of high-quality releases in Apache Kafka. 

After code freeze:

  • Test the release candidates
  • Open bugs on important issues found
  • Fix 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

Key Summary T Created Updated Due Assignee Reporter P Status Resolution
KAFKA-3663 Proposal for a kafka broker command - Improvement May 05, 2016 Nov 01, 2017 Unassigned Jayesh Thakrar Major Patch Available Unresolved

Planned KIP Content

Note: The planned content is not binding - final content will be based the features committed by branch-cutting date.

1KIP-54: Sticky Partition Assignment Strategy KAFKA-2273 - KIP-54: Add rebalance with a minimal number of reassignments to server-defined strategy list Resolved ConsumerJason Gustafson
2KIP-66: Single Message Transforms for Kafka Connect (items not included in KAFKA-4714 - Implement remaining KIP-66 SMTs Resolved ConnectEwen Cheslack-Postava
3KIP-82 - Add Record Headers KAFKA-4208 - Add Record Headers Resolved MultipleJason Gustafson
4KIP-98 - Exactly Once Delivery and Transactional Messaging

KAFKA-4815 - Idempotent/transactional Producer (KIP-98) Resolved

KAFKA-4816 - Message format changes for idempotent/transactional producer Resolved

KAFKA-4817 - Implement idempotent producer Resolved

KAFKA-4818 - Implement transactional clients Resolved

MultipleGuozhang Wang, Jason Gustafson, Jun Rao, Ismael Juma
5KIP-101 - Alter Replication Protocol to use Leader Epoch rather than High Watermark for Truncation

KAFKA-1211 - Hold the produce request with ack > 1 in purgatory until replicas' HW has larger than the produce offset (KIP-101) Resolved

KAFKA-5036 - Followups from KIP-101 Resolved

ReplicationJun Rao

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

KAFKA-5257 - Change Default unclean.leader.election.enabled from True to False Resolved ControllerIsmael Juma
7KIP-107: Add purgeDataBefore() API in AdminClient KAFKA-4586 - Add purgeDataBefore() API in AdminClient Resolved MultipleJiangjie Qin
8KIP-109: Old Consumer Deprecation KAFKA-3264 - Mark the old Scala consumer and related classes as deprecated Resolved ConsumerIsmael Juma
9KIP-114: KTable state stores and improved semantics KAFKA-5045 - KTable materialization and improved semantics Resolved StreamsGuozhang Wang
10KIP-115: Enforce offsets.topic.replication.factor upon __consumer_offsets auto topic creation KAFKA-3959 - KIP-115: __consumer_offsets wrong number of replicas at startup Resolved Request handlingEwen Cheslack-Postava
11KIP-117: Add a public AdminClient API for Kafka admin operations KAFKA-3265 - Create Java Admin Client Resolved Admin ClientIsmael Juma
12KIP-119: Drop Support for Scala 2.10 in Kafka 0.11 KAFKA-4422 - Drop support for Scala 2.10 (KIP-119) Resolved BuildEwen Cheslack-Postava
13KIP-121: Add KStream peek method KAFKA-4720 - Add KStream.peek(ForeachAction<K,V>) Resolved StreamsGuozhang Wang
14KIP-122: Add Reset Consumer Group Offsets tooling KAFKA-4743 - Add a tool to Reset Consumer Group Offsets Resolved ToolsJason Gustafson
15KIP-123: Allow per stream/table timestamp extractor KAFKA-4144 - Allow per stream/table timestamp extractor Resolved StreamsGuozhang Wang
16KIP-124 - Request rate quotas KAFKA-4195 - support throttling on request rate Resolved BrokerJun Rao
17KIP-126 - Allow KafkaProducer to split and resend oversized batches. KAFKA-3995 - Split the ProducerBatch and resend when received RecordTooLargeException Resolved ClientsJoel Koshy
18KIP-128: Add ByteArrayConverter for Kafka Connect KAFKA-4783 - KIP-128: Blackbox or pass through converter or ByteArrayConverter for connect Resolved ConnectEwen Cheslack-Postava
19KIP-129: Streams Exactly-Once Semantics

KAFKA-4923 - Add Exactly-Once Semantics to Streams Resolved

KAFKA-4986 - Add producer per task support Resolved

StreamsGuozhang Wang
20KIP-133: Describe and Alter Configs Admin APIs KAFKA-3267 - Describe/Alter Configs protocol, server and client (KIP-133) Resolved AdminClientJun Rao
21KIP-134: Delay initial consumer group rebalance KAFKA-4925 - Add a configurable delay to the initial consumer group rebalance Resolved Group CoordinatorGuozhang Wang
22KIP-136: Add Listener name to SelectorMetrics tags KAFKA-4982 - Add listener tag to socket-server-metrics.connection-... metrics (KIP-136) Resolved MetricsIsmael Juma
23KIP-137: Enhance TopicCommand --describe to show topics marked for deletion KAFKA-4291 - TopicCommand --describe shows topics marked for deletion as under-replicated and unavailable (KIP-137) Resolved ToolsIsmael Juma
24KIP-140: Add administrative RPCs for adding, deleting, and listing ACLs KAFKA-3266 - Implement KIP-140 RPCs and APIs for creating, altering, and listing ACLs Resolved AdminClientIsmael Juma
25KIP-143: Controller Health Metrics KAFKA-5135 - Controller Health Metrics (KIP-143) Resolved ControllerJun Rao
26KIP-144: Exponential backoff for broker reconnect attempts KAFKA-3878 - Exponential backoff for broker reconnect attempts (KIP-144) Resolved ClientsIsmael Juma
27KIP-146 - Classloading Isolation in Connect KAFKA-3487 - KIP-146: Support per-connector/per-task classloaders in Connect Resolved ConnectEwen Cheslack-Postava
28KIP-151 Expose Connector type in REST API KAFKA-4343 - KIP-151: Connect REST API should expose whether each connector is a source or sink Resolved ConnectEwen Cheslack-Postava
29KIP-153: Include only client traffic in BytesOutPerSec metric KAFKA-5194 - KIP-153: Include only client traffic in BytesOutPerSec metric Resolved MetricsIsmael Juma
30KIP-154 Add Kafka Connect configuration properties for creating internal topics KAFKA-4667 - KIP-154: Connect should create internal topics Resolved ConnectEwen Cheslack-Postava
31KIP 155 - Add range scan for windowed state stores KAFKA-5192 - Range Scan for Windowed State Stores Resolved StreamsGuozhang Wang
32KIP 156 Add option "dry run" to Streams application reset tool KAFKA-5166 - Add option "dry run" to Streams application reset tool Resolved StreamsGuozhang Wang

See Kafka Improvement Proposals for the full list of KIPs.

KIPs Bumped to Next Release

1KIP-48 Delegation token support for Kafka KAFKA-1696 - Kafka should be able to generate Hadoop delegation tokens Open Security PR not available
2KIP-72: Allow putting a bound on memory consumed by Incoming request  KAFKA-4602 - KIP-72 Allow putting a bound on memory consumed by Incoming requests Resolved NetworkJun RaoIt was deemed safer to merge this to trunk early in the release cycle for the next release.
3KIP-81: Bound Fetch memory usage in the consumer KAFKA-4133 - Provide a configuration to control consumer max in-flight fetches Open Consumer Has a dependency on KIP-72 (which is still in progress) and there is no PR available, seems prudent to postpone it to the subsequent release.
4KIP-112: Handle disk failure for JBOD KAFKA-4763 - Handle disk failure for JBOD (KIP-112) Resolved Broker Needs more review time and makes sense to be part of the same release as KIP-113.
5KIP-118: Drop Support for Java 7 KAFKA-4423 - Drop support for Java 7 Open Build Postponed for a variety of reasons
6KIP-120: Cleanup Kafka Streams builder API KAFKA-3856 - Cleanup Kafka Streams builder API Resolved StreamsGuozhang WangUnable to review it in time for the feature freeze
7KIP-138: Change punctuate semantics KAFKA-5233 - Changes to punctuate semantics (KIP-138) Resolved StreamsGuozhang WangHigh impact change that needs more time to review
  • No labels