URL:- POST /shorten
Request:- {
"long_url": "https://example.com/abc",
"custom_alias": "myurl", // optional
"expiry": "2026-12-31" // optional
}
Response:-
{
"short_url" : "https://tinyurl.com/abc123"
}
URL: -GET /{short_code}
Response:- HTTP 301 Redirect -> Original URL
URL:- GET /analytics/{short_code}
Client -> Load Balancer -> API Servers -> Cache -> Database
Load Balancer
API Servers (Node.js)
Cache (Redis)
Database (MYSQL/NOSQL)
Redirect Flow
System is read-heavy. Cache is critical.
Handles ID + Base 62
Handles Collisions
Supports Custom Alias
Cache-first lookup
DB Fallback
301 Redirect
Cache-aside strategy
TTL + LRU
Stampede Protection Using Locks
Key-Value Mapping
Indexed by short_code
Sahrding + Replicas
Node.js Servers
Load Balanced
Stateless
Rate Limiting
Analytics
Async Processing