System design

Architecte

Démêler le monolithe distribué

Trois équipes possèdent les services catalogue, panier et avis d'une boutique de mode, mais les trois services partagent encore une seule base. À 10:00, l'équipe avis lance une migration qui verrouille cette base pendant une heure, et aujourd'hui cela fait tomber toute la boutique. La nouvelle règle : le changement d'une équipe ne doit jamais faire tomber la fonctionnalité d'une autre. Les avis peuvent disparaître des pages pendant leur incident ; la navigation et le paiement, non.

La vitrine appelle les trois services à chaque page. La base partagée devient la base des avis : la migration tournera dessus quoi que tu fasses. Les réponses de repli sont comptées : le bloc des avis en aura besoin d'environ 14 millions à lui seul pendant cette heure, et aucune autre équipe n'a le droit d'en utiliser.

Ce que ton design doit atteindre

  • Disponibilité ≥ 99,9 %
  • Requêtes servies par une solution de repli < 20000000
  • Latence p99 < 300 ms

Ce que tu vas maîtriser