Design an API Rate Limiter — System Design Interview Practice
Design a rate limiting system to control the number of requests a user can make to an API. Work through the requirements, architecture trade-offs, and an interactive design review.
Requirements and concepts to consider
- Limit requests per user/IP within time windowRequirement
- Support different rate limit tiersRequirement
- Provide clear error messages when limit exceededRequirement
- Track and reset limits per time windowRequirement
- Support distributed rate limitingRequirement
- Monitor and alert on rate limit breachesRequirement
- Handle millions of requests per secondRequirement
- rate limitingConcept to explore
- infrastructureConcept to explore
- distributed systemsConcept to explore
- redisConcept to explore