Skip to content

[#447] Resolve "waitlist for pending channel requests"

aguestuser requested to merge 447-waitlist-for-pending-channel-requests into main

Closes #447 (closed)

context

  • after !528 (merged) if we let our channel reserve drop to 0 (which we might do intentionally to throttle user growth pending performance improvments), users who try to create a channel will simply have their request dropped and be told to try again later
  • but we would still like these people to be able to get channels later once we have capacity without having to "try again!"
  • this MR introduces a "wait list" that users will be added to that will allow maintainers to go back and manually create channels for them once capacity frees up (which we will measure via #456 (closed) )

changes

data layer

  • create channelRequest table/model (to store waitlist)
  • add channelRequestRepository#addToWaitlist (to create a channelRequest record)

repository/execute layer

use UNAVAILABLE status for channel requests when none available. if user requests a channel and none are available:

  • let channelRegistrar#create return sbStatuses.UNAVAILABLE (instead of generic ERROR)
  • let execute#maybeCreateChannel handle this special error by adding admins to waitlist and returning waitlist command response (but handling other errors with generic error message)

user-facing

update "requestsClosed" command response to mention waitlist

misc

channel phone number is no longer required, so allow it to be null in boost!

Edited by aguestuser

Merge request reports