Κάντε scale σε στάδια: read replicas + caching για τα reads πρώτα, μετά sharding (Vitess) για τα writes — και προσθέστε connection pooling πριν από οτιδήποτε άλλο, γιατί είναι το φθηνότερο 10x. Τα reads και τα writes κάνουν scale διαφορετικά, οπότε μην καταφεύγετε στο sharding από την πρώτη μέρα.
┌─▶ 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
