Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Classic Protocol → maps to Consumer CloseOptions.REMAIN_IN_GROUP (preserves existing behavior; no regression for current users).
  • Streams Protocol (KIP-1071), dynamic member → DEFAULT maps to consumer DEFAULT, causing the member to leave the group, since remaining provides no benefit.

  • Streams Protocol (KIP-1071), static member → maps to Consumer REMAIN_IN_GROUP, preserving static membership and avoiding unnecessary rebalances on restart. This is consistent with the consumer, which already differentiates close semantics based on membership type.

4. Redefine CloseOptions.REMAIN_IN_GROUP

...

Uses Uses Uses Uses Uses
Streams CloseOptionClassic Protocol (Dynamic Member)Classic Protocol (Static Member) BehaviorStreams Protocol (Dynamic Member)Streams Protocol (Static Member)
close() (current) [1]Consumer REMAINConsumer REMAINConsumer LEAVEN/A
close() (new) [2]Consumer REMAINConsumer REMAINConsumer DEFAULT (LEAVE)Consumer DEFAULT (REMAIN)
close(REMAIN_IN_GROUP) (current)Consumer REMAINConsumer REMAINConsumer LEAVEN/A
close(
DEFAULT (New)Uses Consumer REMAINUses Consumer DEFAULT (leave)Uses Consumer REMAIN
REMAIN_IN_GROUP
) (new)Consumer REMAINConsumer REMAIN
Consumer REMAIN
Consumer REMAIN
close(LEAVE_GROUPUses ) (current)Consumer LEAVEConsumer LEAVEConsumer LEAVEN/A
close(LEAVE_GROUP) (new)Consumer LEAVEConsumer LEAVE
Consumer LEAVE
Consumer LEAVE

Legend:

  1. close() (current) internally delegates to close(REMAIN_IN_GROUP) 
  2. close() (new) internally delegates to close(DEFAULT) 

Compatibility, Deprecation, and Migration Plan

...