CQRS + Event Sourcing

4 824 vues

Publié le

Cette présentation décrit un concept architecture qui n'est pas nouveau, la séparation des commande et des requête et un autre les événements comme source d'information.

Ensemble ils forment un duo imbattable pour développer des application performantes et robustes.

Publié dans : Technologie
  • Soyez le premier à commenter

CQRS + Event Sourcing

  1. 1. CQRS + EVENT SOURCING Des concepts de design pour une architecture à toute épreuve
  2. 2. SÉPARATION DES COMMANDES ET REQUÊTES © Pyxis Technologies inc. 2
  3. 3. SYSTÈME TRADITIONNEL Données relationnelles Mise à jour BD Logique d’affaire CRUD Interface usager © Pyxis Technologies inc. 3
  4. 4. PROBLÈMES © Pyxis Technologies inc. 4
  5. 5. POURQUOI CONTINUE-T-ON? © Pyxis Technologies inc. 6
  6. 6. POURQUOI CONTINUE-T-ON? © Pyxis Technologies inc. 7
  7. 7. CONFIANCE… © Pyxis Technologies inc. 8
  8. 8. SYSTÈME TRADITIONNEL Données relationnelles Mise à jour BD Logique d’affaire CRUD Interface usager © Pyxis Technologies inc. 9
  9. 9. SÉPAR AT IO N D ES C OMMAN D ES ET D ES R EQU ÊTES Données relationnelles Mise à jour BD Logique d’affaire Requêtes Commandes Interface usager © Pyxis Technologies inc. 10
  10. 10. CQRS - C O M M A N D A N D Q U E R Y R E S P O N S A B I L I T Y S E G R E G AT I O N Données relationnelles Mise à jour BD Modèle de lecture Domaine Gestion des commandes Requêtes Commandes Interface usager © Pyxis Technologies inc. 11
  11. 11. PASSONS À L’ACTION  Utiliser des verbes pas des noms  Il faut analyser comment l’usager utilisera le système  Pas d’édition de données mais plutôt des actions sur le domaine  Passer des commandes  Message sérialisable  Mode impératif  Langage clairement défini  Est-ce qu’une commande peut être refusée? © Pyxis Technologies inc. 12
  12. 12. CQRS  Commandes  Change l’état du système  Asynchrone (pour le meilleur et pour le pire)  Requêtes       Ne change pas le système Modèle dénormalisé Distribuable (Charding) Scalable Représente au moins 90% des accès au système Performance © Pyxis Technologies inc. 13
  13. 13. EST-CE QU’ON A TERMINÉ? © Pyxis Technologies inc. 14
  14. 14. CQRS - C O M M A N D A N D Q U E R Y R E S P O N S A B I L I T Y S E G R E G AT I O N Données relationnelles Mise à jour BD Modèle de lecture Domaine Gestion des commandes Requêtes Commandes Interface usager © Pyxis Technologies inc. 15
  15. 15. CQRS + EVENT SOURCING Événements Dénormaliseur Event Store Gestion d’événements Service BUS XML SQL HTML Modèle de lecture Domaine Gestion des commandes Requêtes Commandes Interface usager © Pyxis Technologies inc.
  16. 16. EVENT SOURCING       Modélise le comportement non pas la structure Séquentiel et cumulatif Peut rejouer les événements Ajout seulement Possible de construire n’importe quel modèle structuré Audit © Pyxis Technologies inc. 17
  17. 17. LES ÉVÉNEMENTS  Rolling Snapshot  Optimisation  Aggregate root  Transaction garantie uniquement dans ce cadre  Construit à partir des événement  Commandes  ApplyEvent  Events  Ne peux pas échouer  Aucune logique à appliquer © Pyxis Technologies inc. 18
  18. 18. CQRS PIPELINE Event store User interface Commands © Pyxis Technologies inc. Domain changes Events Denormalizer Read models
  19. 19. LA FIN  Questions?  Rappelez-vous  Les événements sont la seule vérité  Le cœur du système est le domaine  Le modèle de lecture est flexible et volatile  Eric De Carufel  eric@decarufel.net  http://blog.decarufel.net  http://pyxis-tech.com © Pyxis Technologies inc. 20

×