URL shorteners convert long URLs into short aliases. You've used bit.ly or tinyurl. Now you'll design one.
Functional requirements: shorten URLs, redirect to originals, optional custom aliases, expiration support. Non-functional: high availability, low latency redirects ( ms), million URLs created daily.
Back-of-envelope: million writes/day = writes/second. Read-heavy (assume : ratio) = reads/second. Storage: bytes/URL × million/day × days × years = TB.