chia7712 commented on code in PR #23486: URL: https://github.com/apache/kafka/pull/23486#discussion_r4037656675
########## docs/streams/developer-guide/streams-rebalance-protocol.md: ########## @@ -53,7 +53,7 @@ The following features are available in the current release: * **Offline Migration**: After shutting down all members and waiting for their `session.timeout.ms` to expire (or forcing an explicit group leave), a classic group can be converted to a streams group and a streams group can be converted to a classic group. The only broker-side group data that will be preserved are the committed offsets. Internal topics (changelog and repartition topics) will continue to exist as regular Kafka topics. -* **Static Membership**: Streams applications can configure [`group.instance.id`](../config-streams#group-instance-id) when using `group.protocol=streams`. However, for topologies without persistent state stores, Kafka Streams generates a new process ID on each restart, causing the broker to recompute the group assignment and effectively negating the benefits of static membership across restarts. +* **Static Membership**: Streams applications can configure [`group.instance.id`](../config-streams#group-instance-id) when using `group.protocol=streams`. This requires clients and brokers running Kafka 4.4 or newer: brokers on older versions reject `group.instance.id` on the streams group heartbeat with `INVALID_REQUEST`, which is a fatal error that shuts down the Kafka Streams client. Do not downgrade brokers below 4.4 while static members are running; if brokers have already been downgraded, remove `group.instance.id` from the application configuration and restart the application. Also note that for topologies without persistent state stores, Kafka Streams generates a new process ID on each restart, causing the broker to recompute the group assignment and effectively negating the benefits of static membership across restarts. Review Comment: > Do not downgrade brokers below 4.4 while static members are running This is a bit misleading to me since it reads like "I will be fine if I stop the application". Maybe we could tweak the two statements, for example: > Before downgrading brokers below 4.4, or if brokers have already been downgraded, remove group.instance.id from all Streams applications using group.protocol=streams and restart them. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
