...
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 | ||||
---|---|---|---|---|
| ||||
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
...