Design a URL Shortener/Playground
A URL shortener like bit.ly
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. 10 billion redirects and 100 million new links a month, peaks at 5× the average.
- Requests failing
- 0%
- Backlog growing
- 9,300/s
- Instances running
- 10
What goes through it
| Operation | Offered | Outcome | Wait | Up |
|---|---|---|---|---|
| Redirects | 19k/s | All served | 13 ms | 99.94% |
| New links | 195/s | All served | 27 ms | 99.95% |
| Click eventsbackground | 19k/s | Backlog +9,300/s | – | – |
| Click counts savedbackground | 200/s | Keeping up | – | – |
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:
Redirects and New links 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) ↗
Risk:
It falls behind: a backlog of about 9,300/s builds up and has to be worked off later.
Backpressure and capacityMessage queuesSlack: Scaling Slack's Job Queue ↗
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.