URL Shortener & Link Management Service · View 08 of 23 · Structure
The decision, drawn
- Redirect plane: 12 regions, stateless, read-only, no write credential, rebuildable in 30 minutes.
- Management plane: 2 regions, one write region, the only writer of the link table and the reservation index.
- Propagation: two publishers with two different promises, inside the management plane and crossing into the redirect plane.
Sizing
- Resolver: Container Apps, KEDA-scaled on requests per second, three zones per region.
- Hot set: Azure Cache for Redis per region, sized for the assumed 4% 30-day working set rather than the full 12 billion links.
- Cosmos DB: read replicas in every read region, a single write region, native TTL for expiry.
Risks
- The single write region caps creation availability at that region's availability plus failover time; the requirement accepts this and refuses creation rather than risking a duplicate claim (ADR-05).
- Twelve regional Redis instances are twelve things to warm. If the projection worker is not idempotent and resumable per region, a regional restart becomes a cold-cache latency incident.