[#372] Resolve "cap channels to 500 subscribers"
Closes #372 (closed) and satisfies all the criteria specified in it's #behavior
section.
context
- absent a signald replacement, channels past a certain size experience crippling message lag, and degrade system-wide behavior by causing health-check failures that trigger auto-restarts
- until we replace signald to provide better high-throughput availability, we would like to prevent channels from getting to the size where they degrade performance in this way
- this MR caps all new channels to 500 members, and existing channels to their current size (providing a per-channel threshold that can be raised upon special request via
BOOST IT
- this will allow users of channels both big and small to have reasonable message lag and availability pending a deeper technical fix with
signalc
changes
data layer:
- add
subscriberLimit
tochannel
model/table - add
channelRepository#canAddSubscribers
execute layer:
- add conditional checks in execute to enforce subscriber limit
- don't allow JOIN/ACCEPT if already at sub limit
- don't allow INVITE if accepting all invites would cross subscriber limit
- provide lots of translation strings!
user-facing docs:
- add subscriber cap langauge to splash site how-to page