Codacoda
Back to Academy

system design

URL Shortener

Design a URL shortening service like bit.ly that converts long URLs into compact, shareable links. The system uses base62 encoding to generate short codes from auto-incrementing IDs or hash-based mappings. Key components include a URL storage layer, a redirect service that resolves short codes to original URLs, and an analytics tracker for click counts. Trade-offs involve choosing between hash collisions with random codes versus predictable sequential IDs, balancing read-heavy redirect traffic against write operations, and deciding between pre-generating codes or computing them on the fly.

Use Cases

  • Link sharing on social media with character limits
  • Tracking marketing campaign click-through rates
  • Creating clean, memorable URLs for print materials
  • A/B testing with different redirect destinations

Visualization

OVERVIEWClientBrowser / AppAPI ServerREST APIPOST /shortenGET /:codeCacheRediscode -> URLDatabasePostgreSQLurls tablecounter seq
Speed:1x
URL Shortener: converts long URLs to short codes (e.g., bit.ly/abc). Key components: API Server, Cache for fast reads, and Database for persistence.Step 1 / 8

Implementation

Output

Click "Run Code" to see output...