Skaler i trinn: read replicas + caching for lesninger først, deretter sharding (Vitess) for writes — og legg til connection pooling før noe annet, fordi det er den billigste 10x-en. Lesninger og writes skalerer ulikt, så ikke grip til sharding på dag én.
┌─▶ Cache (Redis) ── hit ──▶ returner
App ─▶ Pool(PgBouncer/ProxySQL) miss ▼
│ ┌─▶ Read replica 1 ┐
├──── lesninger ─────┼─▶ Read replica 2 ┼─ (async replikering)
│ └─▶ Read replica N ┘
└──── writes ──▶ Primary ──▶ (senere) Vitess shards ─▶ Primary A / Primary B
Trinn 0: connection pooling
Hver MySQL-connection koster minne og en tråd. Ved 100x trafikk vil du uttømme lenge før CPU. En pooler som eller multiplexer tusenvis av app-connections på noen få hundre DB-connections. Det er en config-endring, ikke en rearkitektur — gjør det først.
