Avec autant de buzzwords dans le titre, laissez-moi expliciter le menu :
• Nous commencerons avec une étude des principes du CQRS et la notion de projection pour construire les modèles de données dédiées à la lecture, le tout avec un datastore traditionnel (relationnel).
• Nous continuerons avec le concept d’état en programmation fonctionnelle, et comment les gérer au sein d’une application tout en respectant le principe d’immutabilité. Et pourquoi ont-ils transformé la gestion d’états pour la construction d’interface utilisateur ?
• Dans un troisième temps, nous nous intéresserons aux évènements du domaine-métier dans le Domain Driven Design et comment ceux-ci s’intègrent dans la mécanique de construction des projections.
• Enfin, nous assemblerons toutes ces notions pour faire apparaitre l’« event sourcing » comme modèle de persistance pour nos données.
• Pour clôture, nous verrons les erreurs les plus courantes rencontrées lors de l’implémentation d’un modèle en event sourcing. Et nous terminerons avec une présentation de l’architecture que nous utilisons en interne chez Arpinum pour nos clients.
Take away:
• Utiliser CQRS (sans event-sourcing) pour simplifier la gestion de la persistance dans son application.
• Comprendre le modèle d’états derrière Redux (utilisé massivement par la communauté ReactJs).
• Gérer facilement les évènements-métier au sein d’une architecture DDD.
• Savoir comment implémenter correctement un système basé sur l’event sourcing.