[ 
https://issues.apache.org/jira/browse/KAFKA-20172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18132848#comment-18132848
 ] 

Ramu commented on KAFKA-20172:
------------------------------

h2. KAFKA-20172 - Implementation Update

*Commit:* 
[947ad83e82b404aab5c3d7a21de2382ce162ac97|https://github.com/ramu11/kafka/commit/947ad83e82b404aab5c3d7a21de2382ce162ac97]

h3. Implemented

* Online migration from the classic Streams protocol to the Streams rebalance 
protocol when a native member joins.
* Classic protocol bridging for JoinGroup, SyncGroup and heartbeat operations 
while both client types coexist.
* Reverse migration to the classic Streams protocol when native members leave 
and migrated classic members remain.
* Task ownership and assignment translation, including representing warm-up 
tasks as standbys for classic clients.
* Subscription metadata version 12 support for probing rebalance intervals and 
known task changelog end-offset sums.
* Handling of unknown end offsets without treating tasks as caught up.
* Regression tests for protocol bridging, probing metadata, assignment 
translation and migration scenarios.

h3. Pending Work

*P1 - Probing lifecycle:* Validate repeated probing cycles end to end, 
including configured interval enforcement, warm-up completion and unchanged 
assignment epochs.

*P1 - Task ownership transfer:* Test cross-member revocation and ensure active 
tasks are transferred only after the previous owner confirms revocation.

*P1 - Reverse migration and recovery:* Test last-member departure, fresh 
coordinator replay, append failures, pending revocations and timer recovery.

*P2/P3 - Compatibility and broader validation:* Expand static membership, 
LeaveGroup, timeout, mixed-version and Streams system-test coverage. Verify 
end-offset telemetry influences assignment decisions correctly.

h3. Status and Scope

This patch represents an intermediate implementation checkpoint and does not 
claim complete KIP-1071 compliance. Broader work on HA assignment and 
rack-aware warm-up support, topology updates and regex topic subscriptions 
remains tracked separately.

Focused Gradle tests were reported passing at this checkpoint. Comprehensive 
recovery and system-test validation remains outstanding.

*References:*
[KIP-1071|https://cwiki.apache.org/confluence/display/KAFKA/KIP-1071%3A+Streams+Rebalance+Protocol]
[KAFKA-20172|https://issues.apache.org/jira/browse/KAFKA-20172]
[KAFKA-20116|https://issues.apache.org/jira/browse/KAFKA-20116]
[KAFKA-20170|https://issues.apache.org/jira/browse/KAFKA-20170]
[KAFKA-20171|https://issues.apache.org/jira/browse/KAFKA-20171]

> Support online migration between classic and streams rebalance protocols
> ------------------------------------------------------------------------
>
>                 Key: KAFKA-20172
>                 URL: https://issues.apache.org/jira/browse/KAFKA-20172
>             Project: Kafka
>          Issue Type: Task
>          Components: group-coordinator, streams
>            Reporter: Lucas Brutschy
>            Priority: Major
>              Labels: kip1071
>         Attachments: KAFKA-20172-online-migration-947ad83-2026-10-27.zip
>
>
> The streams rebalance protocol \(KIP\-1071\) currently only supports offline 
> migration between the classic and streams protocols. Users must shut down all 
> application instances, wait for the session timeout to expire, update the 
> configuration, and then restart. This requires a maintenance window and 
> causes downtime for the streams application.
> As specified in KIP\-1071, online migration should allow converting classic 
> consumer groups to streams groups during rolling client upgrades. When the 
> first streams client using the new protocol joins the group, the group should 
> be converted from a classic group to a streams group. Classic clients should 
> receive REBALANCE\_IN\_PROGRESS errors triggering JoinGroup/SyncGroup calls 
> while new protocol clients use StreamsGroupHeartbeat. The broker should 
> internally translate between protocols during the migration period. The group 
> should revert to classic when the last new\-protocol member leaves. This 
> enables zero\-downtime migration between protocols.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to