Versions Compared

Key

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

...

The default value 1_000_000 proposed here is based on a rough size estimation of member metadata (100B), so the max allowed memory usage per group is 100B * 1_000_000 = 100 MB which should be sufficient large number for most use cases I know. Welcome discussion on this number.

Implementation wise we shall block registration of new member once a group reaches its capacity, and define a new error type:

Code Block
languagejava
titleErrors.java
GROUP_MAX_SIZE_REACHED(77, "Consumer group is already at its full capacity.",
 GroupMaxSizeReachedException::new);

Since the cap should never be reached, the consumer would fail itself upon receiving this error message to reduce load on broker side because reaching capacity limit is a red flag indicating some client side logic bug and should be prohibited to ensure server stability.

Compatibility, Deprecation, and Migration Plan

...