System design interview questionMediumBasic System Component
Design a Rate Limiter
Design a rate limiter in front of an API: each client may send at most N requests per time window (e.g. 100/min); over-limit calls get 429 or are throttled.
Interview scope
Show where limiting runs in the request path, where counters live, and that clients never touch the counter store directly.
Functional requirements
- Identify the caller (API key, user id, or IP).
- Allow under the limit; reject/throttle when over (e.g. HTTP 429).
- Window style (fixed vs sliding) can stay high-level on this Easy canvas.
Scale and quality goals
- Every request needs a fast allow/deny decision (hot path).
- Limits must be correct across many app instances (shared counters).
- Hot path should not hit a slow DB on every single request.
Capacity assumption
Design for this scale
Peak ~20,000 RPS across ~10 app servers. Limit example: 100 requests/minute per API key.
Practice more than a diagram
Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.
Explore Premium →