Design an API Rate Limiter/Playground
Rate limiting a public API
Click a part to change it, put something in front of it, or kill it. Turn the traffic up. Every number moves as you go; nothing is graded. About 40,000 requests a second at peak across 20–60 API instances; the average is assumed.
- Requests failing
- 0%
- Backlog growing
- none
- Instances running
- 34
What goes through it
| Operation | Offered | Outcome | Wait | Up |
|---|---|---|---|---|
| API requests | 40k/s | All served | 47 ms | 99.990% |
| Limiter checks | 40k/s | All served | 2 ms | 99.999% |
| Database queries | 7,500/s | All served | 16 ms | 99.95% |
| Search queries | 2,500/s | All served | 40 ms | 99.999% |
Wait is the expected time a caller waits; Up is the share of time every part it waits on is running.
What your changes did
Nothing yet. This is the reference design: change something to see what it buys and costs.
At this traffic
Risk:
Database queries stop if its one instance does. Kill it to see.
ReplicationMux: What we learned from a 22-Day storage bug (and how we fixed it) ↗
Ask AI what your design does
AIThe numbers above come from a simple model. The AI reads your design, what you changed and these numbers, and explains where it holds and where it fails, citing how the engineers who built it did it. It can be wrong.