ALOM
📬 EDA
Architectures orientées évènement
## Architectures orientées évènement Communications asynchrones via des échanges de message (évènements) 🎯 Créer des architectures flexibles, évolutives, réactives  --- ## ✉️ Un évènement Représente un changement d'état, une occurence dans un système _Commande passée_, _Paiement effectué_, _Capteur de passage déclenché_, _Combat terminé_ Données souvent structurées : * un en-tête (métadonnées, date d'émission, publisher) * un payload (contenu de l'évènement) --- ## Éléments de l'architecture * 📤 publisher / producer : émet les évènements * 📥 subscriber / consumer : reçoit et traite les évènements * 🚚 broker / canaux : transportent les évènements  --- ## 📬 Brokers de message    --- ## 💣 Résilience et Tolérance aux Pannes * 💾 Persistence des messages * ↔️ Scalabilité horizontale  --- ### 🎉 Avantages * découplage * scalabilité * flexibilité * réactivité et temps réel * résilience --- ### 😈 Inconvénients * complexité de l'orchestration des évènements * debugging * cohérence des données --- ### 🧭 cas d'usage courants * 🛒 e-commerce : gestion des commandes, mises à jour de stock * 🌡️ IoT : traitement de données de capteurs * 💸 Finance : trading, détection de fraude * 🍡 Micro-services : communication asynchrones * 🗄️ CDC : Change-Data-Capture : capture des changement d'une base de données --- ### Patterns #### [Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html)   * liste des évènements * possibilité de reconstruire entièrement l'état de l'application * rejeu d'évènements --- ### Patterns #### [CQRS](https://martinfowler.com/bliki/CQRS.html)  * séparation des _Query_ (lecture) et des _Command_ (écriture) * L'EDA implémente souvent la partie _Command_ * ⚠️ Consistence des données --- #### 🛣️ Road to CQRS (1/3)  --- #### 🛣️ Road to CQRS (2/3)  --- #### 🛣️ Road to CQRS (3/3)  --- #### [Outbox](https://microservices.io/patterns/data/transactional-outbox.html) rend l'écriture des messages (évènements) transactionnelle  --- #### [CDC](https://sudohainguyen.github.io/2023-11-20-change-data-capture/) : Change-Data-Capture synchroniser des systèmes, intégrer de l'EDA dans du legacy  (Kafka Connect / Debezium) --- #### [Event types](https://eda-visuals.boyney.io/visuals/event-types) 
TP
EDA avec Pulsar