URL Shortener & Link Management Service · View 12 of 23 · Data
The load-bearing shapes
- link is keyed by (domain, code) — per-domain namespacing, so two customers can each own /sale on their own domain (ADR-06).
- code_reservation is separate from link and outlives it: the claim record, with a retired flag, is what makes reuse structurally impossible (ADR-04).
- revocation_entry is separate from link state because it propagates on a different channel with a different deadline (ADR-02).
Deliberate absences
- click_event carries no IP address, no user id and no cookie — country, device class and referrer host only, which is why no consent mechanism appears anywhere in the set.
- No click counter on link. Counting on the link record would put a write on the read path, which ADR-10 forbids.
Assumptions
- Link record ≤ 1 KB; destination URL median 120 bytes, hard cap 2,048.
- Partitioning is by code hash rather than tenant, so a tenant with 2 million links cannot create a hot partition (ADR-09); the by-tenant index serves listing.