Architecture événementielle · Cartes mentales

Architecture événementielle. Une carte mentale modifiable avec des branches colorées, des idées secondaires et des liens. Les courbes montrent les liens; les flèches indiquent les relations où le sens compte.

L'architecture événementielle découple les systèmes en les faisant communiquer via des événements : les producteurs publient ce qui s'est passé, le bus l'achemine vers les abonnés et un magasin d'événements conserve l'historique.

Architecture événementielle · Cartes mentales

Le canevas MindMap interactif de cette explication : chaque couloir, ligne et flèche ci-dessus appartient à un véritable diagramme QueryChart que vous pouvez ouvrir et modifier.

Comment lire cette carte mentale

  • Commencez par le sujet central, puis suivez une branche colorée pour explorer ses idées.
  • Les courbes montrent les liens; les flèches indiquent les relations où le sens compte.

Producers

Cette branche rassemble “An event records something that HAPPENED — “order placed”, “user updated” — not an instruction to anyone in particular. Producers don't know who is listening.”.

Event bus

Cette branche rassemble “Events are published to the bus”, “The bus decouples producers from consumers: a producer keeps publishing whether or not any consumer is ready, and consumers subscribe to the events they care about.”.

Consumers

Cette branche rassemble “Consumers process events asynchronously”, “The test of the architecture: add a service that reacts to existing events, and not one producer changes. This is the flexibility the pattern buys.”.

Event history

Cette branche rassemble “The event log is the system of record: every state change, in order, forever. Current state is a projection that can be rebuilt from it.”, “Events can be replayed for audit or recovery”.

Liens entre les branches

Un événement enregistre ce qui s'est passé ; ce n’est pas un ordre adressé à quelqu’un en particulier.

Le bus découple les producteurs des consommateurs : aucun des deux ne connaît l'identité ni les horaires de l'autre.

Le magasin d'événements fait de l'historique un système d'enregistrement qui peut être rejoué.

Les consommateurs sont asynchrones : un consommateur lent ne bloque jamais un producteur.

De nouveaux consommateurs rejoignent en s'abonnant : toute la prétention de flexibilité de l'architecture repose là-dessus.

Relations et enseignements clés

  • Un événement enregistre ce qui s'est passé ; ce n’est pas un ordre adressé à quelqu’un en particulier.
  • Le bus découple les producteurs des consommateurs : aucun des deux ne connaît l'identité ni les horaires de l'autre.
  • Le magasin d'événements fait de l'historique un système d'enregistrement qui peut être rejoué.
  • Les consommateurs sont asynchrones : un consommateur lent ne bloque jamais un producteur.
  • De nouveaux consommateurs rejoignent en s'abonnant : toute la prétention de flexibilité de l'architecture repose là-dessus.

Quand utiliser ce visuel

  • Enseigner le découpage producteur-bus-consommateur à une équipe passant de la requête/réponse à l'événementiel.
  • Concevoir une nouvelle intégration : le magasin d'événements répond si l'historique doit être conservé ou consommé et oublié.
  • Audit d'un système événementiel existant pour la défaillance classique : un consommateur qui est en réalité une dépendance synchrone.

Comment cela fonctionne

  1. Adapter le sujet central

    Renommez le sujet pour votre projet ou votre cours.

  2. Développer les branches

    Modifiez les idées et ajoutez des exemples ou des notes.

  3. Relier les idées

    Reliez les branches; utilisez une flèche lorsque le sens est important.

Questions fréquentes

Qu’est-ce que l’architecture événementielle ?

Il s'agit d'un style architectural dans lequel les composants communiquent en publiant et en s'abonnant à des événements plutôt qu'en s'appelant directement. Un service qui crée ou modifie quelque chose publie un événement décrivant ce qui s'est passé ; le bus l'achemine vers tous les abonnés qui s'en soucient ; et un magasin d'événements conserve l'historique. Parce que les producteurs ne nomment jamais leurs consommateurs, le système peut se développer sans toucher à ce qui existe déjà.

Quelle est la différence entre une commande et un événement ?

Une commande est une instruction destinée à un destinataire spécifique (« traiter cette commande ») et elle attend un résultat. Un événement est un enregistrement indiquant que quelque chose s'est déjà produit (« commande passée ») et il ne nomme aucun destinataire. La distinction est importante car les commandes couplent l'expéditeur au récepteur, tandis que les événements laissent le récepteur libre de changer. Les producteurs du visuel n'émettent que des événements, ce qui maintient le bus en liberté.

A quoi sert la boutique événementielle ?

Le magasin d'événements est l'historique conservé par le système : chaque événement, dans l'ordre, en permanence. Il répond à trois objectifs : l'audit (ce qui s'est passé et quand), la récupération (reconstruire l'état d'un service en rejouant ses événements) et l'extensibilité (un nouveau consommateur peut rattraper son retard en lisant le passé). Le visuel le représente comme la branche inférieure car il s'agit d'une utilisation distincte des mêmes événements que les consommateurs traitent en temps réel.

Quels sont les modes de défaillance de l’architecture événementielle ?

Les événements classiques sont : les événements livrés plus d'une fois (les consommateurs doivent donc être idempotents), les événements traités dans le désordre (les consommateurs doivent donc gérer les commandes) et la file d'attente des lettres mortes (événements qui échouent à plusieurs reprises). Le traitement asynchrone du visuel est ce qui les rend gérables (un consommateur peut réessayer sans bloquer le producteur), c'est pourquoi les branches d'échec dans les étapes pratiques constituent la moitié pratique de la conception.

Modifier cette carte mentale dans QueryChart

Ouvrez cette carte mentale sur un espace modifiable. Déplacez les idées et ajoutez des branches et des liens.

Modifier cette carte mentale dans QueryChart

Plus dans Cartes mentales