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