Skalér i etaper: read replicas + caching for reads først, derefter sharding (Vitess) for writes — og tilføj connection pooling før noget andet, fordi det er den billigste 10x. Reads og writes skalerer forskelligt, så grib ikke efter sharding på dag ét.
┌─▶ Cache (Redis) ── hit ──▶ return
App ─▶ Pool(PgBouncer/ProxySQL) miss ▼
│ ┌─▶ Read replica 1 ┐
├──── reads ─────────┼─▶ Read replica 2 ┼─ (async replication)
│ └─▶ Read replica N ┘
└──── writes ──▶ Primary ──▶ (later) Vitess shards ─▶ Primary A / Primary B
Trin 0: connection pooling
Hver MySQL-connection koster hukommelse og en thread. Ved 100x trafik udtømmer du længe før CPU. En pooler som eller multiplexer tusindvis af app-connections over på nogle få hundrede DB-connections. Det er en config-ændring, ikke en rearkitektur — gør det først.
