Scale kwa hatua: read replicas + caching kwa reads kwanza, kisha sharding (Vitess) kwa writes — na ongeza connection pooling kabla ya kitu chochote kingine, kwa sababu ndiyo 10x ya bei nafuu zaidi. Reads na writes huscale tofauti, hivyo usikimbilie sharding siku ya kwanza.
┌─▶ 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
Hatua 0: connection pooling
Kila MySQL connection hugharimu memory na thread. Kwenye traffic ya 100x utaishiwa muda mrefu kabla ya CPU. Pooler kama au humultiplex maelfu ya app connections kwenye DB connections mia chache. Ni config change, si rearchitecture — fanya kwanza.
