URL Shortener & Link Management Service  ·  View 07 of 23  ·  Structure

Layered Architecture

Seven layers, and the only downward path from management into the redirect plane runs through Propagation.

Editable source SVG draw.io All views
Clients Browser and QR scanner Unfurlers and scanners Tenant console Customer API client Edge Front Door anycast + TLS WAF and bot rules Response cache 30 s TTL Access log stream every request Redirect plane Deny-set check in process Resolver read-only Routing rules device, geo Hot set cache Redis Management plane Link API Bulk import 10k per request Domain and TLS service Trust and safety State Link table Cosmos DB Reservation index strong Audit log immutable blob Click store Data Explorer Propagation Revocation publisher fast channel Projection publisher change feed Platform Entra ID and workload identity Key Vault Azure Monitor and ADX Bicep and GitHub Actions GET /{code} miss warm ≤ 60 s Layered Architecture — Where the Plane Boundary Falls External / third party Interface / broker Security / platform Data store Queue / topic Application we own synchronous event / async The only arrows from the management plane into the redirect plane pass through Propagation, and nothing in the redirect plane writes to State. The console, the click export, the alias claim and the link write are drawn in views 08, 10 and 15. v 1.0 · owner Platform Architecture · date 2026-09

Read the arrows, not the boxes

  • Edge and Redirect plane read; Management plane and State write. Nothing in the redirect plane holds a write credential (view 22).
  • Propagation is drawn as its own layer because it is the contract between the two planes, not plumbing between components.
  • Platform services (identity, secrets, telemetry, IaC) touch both planes and are deliberately drawn once.

Omitted here

  • The console, the click export, the billing feed, the alias claim and the cold read — all drawn in views 08, 09, 10 and 15. A layered view that carries every edge stops being readable, and this one is about layer ownership.