System design

Architecte

Tout n'a pas besoin de consensus

Un jeu multijoueur garde les comptes et les achats des joueurs dans un cluster SQL distribué réparti sur trois régions, et c'est le bon choix : l'argent ne doit jamais diverger. Mais les serveurs de jeu écrivent aussi chaque événement de partie dans le même cluster, 30 000 écritures par seconde qui ne servent qu'aux replays et aux statistiques. La facture a triplé et les achats sont devenus lents. Ramène la plateforme sous les 15 000 dollars par mois avec un p99 sous 250 ms.

Chaque écriture dans le cluster des comptes est validée par consensus entre régions, ce qui coûte des allers-retours inter-régions et trois copies du travail. Les événements de partie sont en ajout seul, indexés par partie, relus quelques fois pour les replays, et en perdre l'accès dans une région pendant un moment est acceptable. Le cluster des comptes reste : redimensionne-le, mais ne le remplace pas.

Ce que ton design doit atteindre

  • Facture mensuelle < 15 000 $
  • Latence p99 < 250 ms
  • Disponibilité ≥ 99,95 %

Ce que tu vas maîtriser