Skip to content

[#372] Resolve "cap channels to 500 subscribers"

aguestuser requested to merge 372-cap-channels-to-500-members into main

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 to channel 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

Merge request reports