Design a rate limiter that sits in front of an API and caps how many requests each customer may make. It runs across many API servers at once.
Requirements
- Cap requests per API key over a rolling window
- The same cap applies no matter which server is hit
- Rejected requests return quickly and cheaply
- Per-endpoint limits are out of scope
Scale
- API servers
- 40
- Requests per second
- 20,000
- Default limit
- 1,000 requests per minute per key
Draw the design on the board, fill in Your answer, then submit.