Skip to content

KAFKA-20169: Support static membership for Kafka Streams with the streams rebalance protocol at Client Side.#22559

Open
chickenchickenlove wants to merge 1 commit into
apache:trunkfrom
chickenchickenlove:KAFKA-20169-CLIENT-CORE
Open

KAFKA-20169: Support static membership for Kafka Streams with the streams rebalance protocol at Client Side.#22559
chickenchickenlove wants to merge 1 commit into
apache:trunkfrom
chickenchickenlove:KAFKA-20169-CLIENT-CORE

Conversation

@chickenchickenlove

@chickenchickenlove chickenchickenlove commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds the remaining client-side support for static membership when Kafka Streams uses the streams rebalance protocol (group.protocol=streams) introduced by KIP-1071.

The change allows group.instance.id to be used with the streams protocol, sends the proper static-member leave epoch when a static Streams member closes with DEFAULT or REMAIN_IN_GROUP, and treats UNRELEASED_INSTANCE_ID as a known fatal heartbeat error.

Some close-related changes that were part of my previous full PR #21603 are intentionally not included here because they are already covered by #21579, which introduced CloseOptions.DEFAULT for Kafka Streams.

Changes

  • Allow static membership configuration with group.protocol=streams.
  • Handle UNRELEASED_INSTANCE_ID explicitly in StreamsGroupHeartbeatRequestManager.
  • Add coverage for static member close behavior:
    • DEFAULT and REMAIN_IN_GROUP use LEAVE_GROUP_STATIC_MEMBER_EPOCH.
    • LEAVE_GROUP uses LEAVE_GROUP_MEMBER_EPOCH.
    • pollOnClose sends the static leave epoch and instance id.
  • Update Streams config tests to verify group.instance.id is allowed for unprefixed, consumer., and
    main.consumer. configurations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant