चरणबद्ध रूपमा scale गर्नुहोस्: पहिले read का लागि read replica + caching, अनि write का लागि sharding (Vitess) — र अरू केही अघि connection pooling थप्नुहोस्, किनकि यो सबैभन्दा सस्तो 10x हो। read र write फरक तरिकाले 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
चरण 0: connection pooling
प्रत्येक MySQL connection ले memory र एउटा thread खर्च गर्छ। 100x traffic मा तपाईं CPU भन्दा धेरै पहिले सिध्याउनुहुन्छ। वा जस्तो pooler ले हजारौं app connection लाई केही सयवटा DB connection मा multiplex गर्छ। यो rearchitecture होइन, config परिवर्तन हो — यो पहिले गर्नुहोस्।
