Channels: Rate limiting for admins AND supers
Nobody has claimed this yet.
- Dominant language
- Elixir
- Stars
- 296
- Forks
- 86
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 50
Description
There should be global rate limits for channels, but also project admin rate limits. I.,e., "you can access the master facility registry but only 100x/min"
Types of limiting:
- Limit # concurrent requests in time period
Limit request attachment storage in time periodde-scoped for now til we have validated this is a problem
Stories
- Flagger: Count requests + identify if over rate limit
- counting, grouped by credential and/or project
- Blocker: Stop requests over the limit
- Notifier: Tell customers they've exceeded and ask them to stop
Product Scope Options
- S: Provably stop abuse
- M: Responsible concurrent rate limiting
- L: Differentiated rate limiting based on projects etc
Existence Proof of Small
- PM specifies abuse = any hour exceeds 10,000 requests, can happens once but can never happen again without human intervention
- Cron job, sql, check if exceeds, if so, a) disable channels for that project and b) send email, cc'ing support
Technical Options
- S: Hard cap for every individual project, same across all of them
- M: Varies across projects, rolling window / leaky bucket approach for handling bursty usage patterns
- L: Rejecting requests over certain size
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by clarifying the intended product scope for channel rate limiting, including the abuse threshold, project differentiation, and whether counting, blocking, and notification are all required. Then locate the channels request entry point and determine how credentials and projects can be identified. Done means an agreed implementation scope and acceptance criteria for the selected rate-limiting approach.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100