L'Event-Driven Architecture (EDA) est un pattern architectural où les composants communiquent via des événements asynchrones.
Concepts clés :
- Event : Quelque chose qui s'est passé
- Producer : Émet des événements
- Consumer : Réagit aux événements
- Event Bus : Canal de transmission
Exemple e-commerce :
Commande créée (Event)
↓
- Service Stock : Réserver produits
- Service Paiement : Débiter client
- Service Email : Confirmation commande
- Service Analytics : Tracker vente
Avantages :
- Découplage : Services indépendants
- Scalabilité : Scale par service
- Résilience : Failures isolées
- Temps réel : Réactions instantanées
- Audit trail : Historique complet
Technologies :
- Message Brokers : Kafka, RabbitMQ, AWS SNS/SQS
- Event Stores : EventStoreDB
- Streaming : Apache Kafka, AWS Kinesis
vs Request-Response :
- Request-Response : Synchrone, couplé
- Event-Driven : Asynchrone, découplé
Idéal pour microservices et temps réel