Medium👤 3-5 years👤 8-15 years 1 min read

How do you design API rate limiting, and what do you return when a client exceeds it?

Asked inAmazonGoogleMicrosoft
#rate limiting#token bucket#429#retry-after#throttling
Report issue

⚡ Short Answer

Use a token-bucket or sliding-window limiter keyed per client/API key (in Redis for distributed enforcement). On exceed, return 429 Too Many Requests with a Retry-After header; expose limit/remaining/reset headers so well-behaved clients can self-throttle.

Coffee Chat Question

Concept Made Simple

How do you design API rate limiting, and what do you return when a client exceeds it?

🧠Mind Map Answer

Remember It Faster

Algorithmtoken bucket / sliding window
Key byAPI key / user / IP
Exceed429 + Retry-After
HeadersX-RateLimit-Limit/Remaining/Reset

🔥What If?

Think Beyond the Expected

Why does rate limiting need a shared store like Redis in a multi-instance deployment?

Per-instance counters let a client multiply their limit by the number of instances (and counts reset on deploys). A shared store (Redis) — or the API gateway — enforces one global limit across all instances consistently.

😂Real World

Rate limiting protects against abuse, runaway clients, and cost blowouts; it's usually enforced at the API gateway with Redis-backed counters and standard 429 + Retry-After semantics.

🎯Interviewer's Expectation

Keywords they're listening for:

token bucket/sliding windowper-client key429 + Retry-Afterrate-limit headersshared store for distributed

⚠️Common Mistakes

  • Per-instance counters (limit multiplied)
  • Returning 503 instead of 429
  • No Retry-After / rate headers

Best Practices

  • Enforce centrally (gateway + Redis)
  • Return 429 + Retry-After + limit headers
  • Tune burst vs sustained with token bucket

🔁Follow-up Questions

  • 1Token bucket vs sliding window vs fixed window?
  • 2Where do you enforce it — gateway or app?
  • 3How do you handle burst vs sustained rate?

🧩Related Technologies

RedisAPI gatewayResilience4j RateLimiterBucket4j

Continue Learning with AI

Take this question deeper with your favourite AI assistant. Pick a depth, copy the prompt, or open it directly — AI is your learning companion, not a shortcut.

Plain-language foundations

I'm preparing for a software engineering interview and want to understand this from scratch, as a beginner.

Topic: Auth (REST APIs)
Interview question: "How do you design API rate limiting, and what do you return when a client exceeds it?"

Please:
1. Explain the core idea in simple, plain language, using an everyday analogy.
2. Define any technical terms you use.
3. Walk through one small, concrete example.
4. Finish with a single sentence I can easily remember.

Keep the tone friendly and assume I'm new to this topic.
Open inChatGPTGeminiClaude

Was this answer helpful?

Support our platform by exploring our recommended products.

As an Amazon affiliate, purchases through these links may earn us a small commission — at no extra cost to you. It helps keep Full Stack Interview Guru free.

Related Questions