Retrouvez la vidéo de la conférence sur : https://www.youtube.com/watch?v=zxa4y6eJj_g
L’Event Sourcing et CQRS sont sur toutes les lèvres en cette année 2017 qui marque l’avènement des systèmes dits « réactifs » ou « dirigés par les évènements ». Bien que leur présence ne date pas d’hier, peu d’applications en tirent aujourd’hui bénéfice.
Dans ce retour d’expérience, nous allons vous présenter dans le détail et en toute transparence, l’implémentation mise en place au sein d’une grande banque d’investissement française, ses avantages, ses inconvénients, ses compromis et les leçons que nous avons en tiré. Nous espérons vous donner ainsi le bagage nécessaire pour vous lancer à votre tour dans la grande aventure du réactif.
Par Clément Heliou, Expert Back et Coach Crafts chez Xebia
9. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
Commande
FONCTION DE
DÉCISION
11. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
FONCTION DE
DÉCISION
Commande
FONCTION
D’ÉVOLUTION
Évènement(s)
EVENT
STORE
12. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
FONCTION D’ÉVOLUTION
(état courant + évènement)
=> nouvel état
Pour chaque évènement émis par
la fonction de décision
13. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
Évènement(s)
FONCTION DE
DÉCISION
Commande
FONCTION
D’ÉVOLUTION EVENT
STORE
Action
Effets de bord
21. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
FONCTION DE
DÉCISION
RecevoirPrix
{commande}
24. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
FONCTION DE
DÉCISION
RecevoirPrix
{commande}
FONCTION
D’ÉVOLUTION
PrixReçu
{évènement}
26. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
FONCTION DE
DÉCISION
RecevoirPrix
{commande}
FONCTION
D’ÉVOLUTION
PrixReçu
{évènement}
Demande
de prix
Réception
de prix
PrixReçu
{évènement}
TransférerPrix
{action}
PrixTransféré
{évènement}
37. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
Évènement(s)
FONCTION DE
DÉCISION
Commande
FONCTION
D’ÉVOLUTION EVENT
STORE
Action
Effets de bord
38. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
APPLICATION
Inspiré par J. Chassaing - http://thinkbeforecoding.com/post/2014/01/04/Event-Sourcing.-Draw-it
Évènement(s)
FONCTION DE
DÉCISION
Commande
FONCTION
D’ÉVOLUTION EVENT
STORE
Action
Effets de bord
39. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
Recevoir prix
{commande}
requêteId: 9387
prix: 100€
FONCTION DE
DÉCISION
FONCTION DE
DÉCISION
Prix reçu
{évènement}
requêteId: 9387
prix: 100€
marge: 0,10€
Recevoir prix
{commande}
requêteId: 9387
prix: 100€
Prix reçu
{évènement}
requêteId: 9387
prix: 100€
marge: 0,20€
12/02/2017 - Marge 0,1%
01/07/2017 - Marge 0,2%
40. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
Dénommer un ÉVÈNEMENT
n’est pas chose AISÉE.
« Anatomy of domain event »
M. Praglowski - http://blog.arkency.com/2016/05/the-anatomy-of-domain-event/
55. #DevoxxFR #XebiaDevoxx @c_heliou @XebiaFr
RESSOURCES
๏XEBICON 15’ - CQRS + EVENT SOURCING: EN DIRECT !
๏BACK DAY 15’ - EXPLORER LES PRINCIPES DE L’EVENT SOURCING
๏THINKBE4CODING #EVENTSOURCING
๏KATA MIXTER
- https://github.com/devlyon/mixter
- Kata explorant les principes de l’Event Sourcing/CQRS.
- https://www.youtube.com/watch?v=QGGZs0KqxZw
- Live coding présentant les principes de l’Event Sourcing/CQRS.
- http://thinkbeforecoding.com/tag/Event%20Sourcing
- L’un des auteurs français à suivre sur le sujet Event Sourcing/CQRS.
- http://www.xebia.tv/vod?videoId=S8566fyZHp0
- Présentation plus large du projet Multiplus (DDD, BDD, Architecture hexagonale).