Event-driven
Est-ce que je suis prêt ?
@wasselovski
Agenda
EVENT-DRIVEN
- La promesse
- Ça veut dire quoi ?
- Est-ce que je suis prêt ?
La promesse
La promesse
La promesse
La promesse
La promesse
Tendance nécessaire ?
Tendance nécessaire ?
Tendance “nouvelle” ?
Qu’est-ce qui a changé ?
La révolution copernicienne du SI
Event
État
État
Event
La révolution copernicienne du SI
Event
État
État
Event
Priorité :
Réagir aux changements
Priorité :
Maintenir l’état
Priorité au direct
Priorité
Priorité
Détecter des opportunités (aka “business moments”)
Détecter d’autres événements (aka CEP)
Identité client usurpée
Event-Driven pour plus d’agilité
Event-Driven pour plus d’agilité
Event-Driven pour plus d’agilité
Event-Driven pour plus d’agilité
Une question de techno ?
Une question de techno ?
Concrètement, ça veut dire quoi ?
Notification par événement
Notification par événement
Message vs événement
Ce n’est pas parce qu’on utilise un broker de message
qu’on est “Event-Driven”
Commande vs événement
Commande
Événement
Un fait
Quelque chose qui s’est
réellement produite
Une intention
Une action suceptible de
changer un état
Transfert d’état
ORDRE D’ACHAT
MODIFIÉ
Transfert d’état
ORDRE D’ACHAT
MODIFIÉ
CQRS
Modèles de lecture et d’écriture distincts
Event sourcing
Le test de recette
Source de vérité
Event sourcing
Le test de recette
Source de vérité
Event sourcing
Le test de recette
Source de vérité
Reconstruire l’état à partir des événements
Event sourcing
Dans la vraie vie
1. On loggue tous les événements
2. On n’en fait rien
Ce n’est pas de “l’Event sourcing”
Event sourcing
Dans un système distribué
Limites & challenges :
- Versioning
- Snapshots
- Systèmes externes
- Identifiants
Event-driven : le prix à payer
Les challenges
- Difficile de prédire le comportement global
- Complexité
- Asynchronisme
- Duplications
- Eventual consistency
Les challenges
- Difficile de prédire le comportement global
- Complexité
- Asynchronisme
- Duplications
- Eventual consistency
Pas obligatoirement
Pas tout le temps
Pas partout
Et puis ce n’est pas si grave que ça
Est-ce vraiment un problème ?
Un modèle 1 size fits all est plus problématique
+ Contexte spécifique
+ Autonomie => Ça peut aider pour livrer plus vite
Ça dépend...
Pas forcément plus que d’autres types d’archi
Le prix à payer
Le contrôle ne scale pas !
Est-ce que je suis prêt ?
Event sourcing
Un exemple qui fonctionne bien
Solde = Σ Opérations
Source de vérité
Event sourcing
Un exemple qui fonctionne bien
Solde = Σ Opérations
Les événements sont une notion métier
Source de vérité
Est-ce que je suis prêt ?
Si je sais exprimer mon besoin avec des événements !
Est-ce que je suis prêt ?
Tech driven Business driven
Comment ?
Un modèle mental partagé
Raisonner “Événement”
Techno recommendée
Event storming
L’approche
Event storming
D’où vient un événement
À emporter
À emporter
L’event-driven ce n’est pas nouveau. Mais aujourd’hui, on a les technos
qui permettent de nouveaux cas d’utilisation.
Mal utilisées, ces même technos peuvent accélerer l’endettement du SI.
Il n’existe pas de solution “silver bullet”.
Voyez grand, commencez simple !
Faites de l’Event Storming !
Sources et références
- https://martinfowler.com/articles/201701-event-driven.html
- https://www.gartner.com/smarterwithgartner/gartner-top-10-strategic-technology-trends-for-2018/
- https://www.gartner.com/webinar/3845865/player?commId=300551&channelId=15915&srcId=1-393108798
1&webinarType=ondemand
https://www.octo.academy/fr/formation/205-ddd-do
main-driven-design
POUR ALLER PLUS LOIN
Merci
Wassel Alazhar
Consultant, developpeur, résolveur de problèmes
@wasselovski
https://github.com/jcraftsman

La Duck Conf : "Event driven : est-ce que je suis prêt ?"