⚡Rate Limiter
0 nodes · 0 edgesHint 1 — locked
Hint 2 — locked
Hint 3 — locked
⚡
Rate Limiter
● Beginner15–20 min
Problem
Build a distributed rate limiter that can be placed in front of any API to throttle requests per user or IP address. It should support sliding-window and token-bucket algorithms and work correctly across multiple server instances without over- or under-counting requests.
Functional Requirements
- Allow or reject incoming requests based on user/IP quota
- Support configurable limits (e.g. 1000 req/min per user)
- Return HTTP 429 with Retry-After header when limit exceeded
- Support multiple algorithms (token bucket, sliding window)
- Counters must be consistent across all server instances
Non-Functional
- Decision latency < 5 ms (must not add perceptible overhead)
- Works across horizontally scaled API servers
- No single point of failure — degradation mode allows traffic
- 1M requests per second peak throughput
⚡
Design your Rate Limiter
Drag components from the Brief panel → switch to Components tab
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
UML
15
Needs Work
Click a dimension to see what's missing. Score updates as you design.
Speed
RPS
Hit Play to start simulation00:00