DBMessageQueueDesignPattern

Consistence forte et consistence à terme

ForteÀ terme
DefSynchroneAsynchrone: la consistence des donnés se fait au fur et a mesure des requêtes
Protocoles2PC

📜Saga

Se fait via de la communication asynchrone nottament desMessageQueue. Chaque Base de données à en cache la totalité des transactions qu’elle pourra rejouer pour être à jour.

Saga architecture

Saga workflow

En fait cela fonctionne un peu comme les saga dans MTG

Saga MTG

Le saga orchestrateur qui va se placer aux côtés du message broker pour gérer la saga, ce qui est utile pour la tractability et le logging.

📥Transactionnal Outbox Pattern

TOP

💬Event sourcing

Partir du principe que notre application change d’état et passe d’un état à l’autre en fonction des données envoyées fonction bijective

🔀CQRS (Command Query Responsibility Segregation)

Sépare une DB en 2 autres DB: une de lecture et l’autre d’écriture Quand le client fait des requêtes, on en a envoyées dans la BD de lecture et dans la BD write

CQRS

On à 3 types de messages:

  • Commandes: changement d’états (POST PUT etc..)
  • Query: Récupération d’état
  • Event: Représente une notification que qqch c’est passé

💬🔀CQRS & EventSourcing

Ici nos commandes irons dans un event store et les queries dans une query database