Design a URL shortening service.
Core APIs / Features
-
Create short URL
: accept a long URL and return a short code / short URL.
-
Redirect
: given a short code, redirect to the original long URL.
-
Optional:
-
Expiry
(TTL) for short links
-
Analytics
(click counts, time series, referrer, geo/device, etc.)
-
Admin / management
(list links, disable/delete, etc.)
Scale assumptions
-
~
1M creates/day
-
~
1B redirects/day
(read-heavy)
Follow-up requirements
-
Multi-region / global low latency
: how do you serve redirects quickly worldwide (geo routing, load balancing, caching strategy, consistency trade-offs)?
-
Write spike durability
: if create traffic spikes from ~300–500 QPS to
1000 QPS
, how do you
guarantee every create request is processed without dropping
(e.g., queue/worker, retries, DLQ, idempotency, backpressure)?