Versions Compared

Key

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

...

The group’s offsets expiration time will be when the group becomes Empty plus retention time of offsets.retention.minutes (assuming during that time the group does not become active again). When the group is in Empty state and the timer reaches the expiration time (set in that state), the group transitions to Dead state, and all group offsets expire and will be removed.

Note that consumers may rejoin the group while the group is in Empty state. As soon as that happens and the group state changes, the expiration timer will be disabled and the previously set expiration time of group offsets will be invalidated (until the group re-enters the Empty state when the expiration time will be reset). This is a breakdown of group states and how the offsets expiration works in those states:

  • Stable: Group offsets will not expire in this state. Expiration timer is disabled.
  • PreparingRebalance: Group offsets will not expire in this state. Expiration timer is disabled.
  • CompletingRebalance: Group offsets will not expire in this state. Expiration timer is disabled.
  • Empty: Expiration timer starts ticking as soon as group enters this state.
  • Dead: Group offsets have already expired in this state. When group is in Empty state and expiration timer reaches the configured retention time offsets expire and group transitions to Dead state.

The default retention time for group offsets can be customized through the existing offsets.retention.minutes broker configuration. If, in the future, a need arises for enforcing a per group retention configuration, it can be implemented via a separate KIP.

...