flex-height
text-black

Client d'un site de e-commerce

Qu'est-ce qu'une architecture pilotée par les événements ?

Le modèle d'intégration de l'architecture pilotée par les événements détecte les « événements » importants et y réagit en temps réel.

default

{}

default

{}

primary

default

{}

secondary

Définition et importance de l'architecture pilotée par les événements

L'architecture pilotée par les événements est une approche de conception logicielle qui donne aux entreprises les moyens de réagir instantanément à tout changement d'état significatif. Imaginez une entreprise capable de réagir dès que quelque chose d'important se produit, par exemple un achat en ligne par un client, la détection d'une défaillance imminente par un capteur, la baisse du cours d'une action ou une alerte de sécurité. Ces changements, que l'on appelle événements, se produisent en permanence, dans toutes les entreprises et dans tous les secteurs. Le succès des entreprises tient à leur réactivité.

C'est là que l'architecture pilotée par les événements (EDA) entre en jeu. Au lieu d'attendre les mises à jour planifiées ou de se fier à des systèmes rigides et étroitement liés, l'architecture pilotée par les événements soutient la communication asynchrone entre les applications à l'aide de composants à couplage lâche. Chaque élément du système peut agir indépendamment des autres, c'est-à-dire sans connaître les rouages de l'autre. Ce fonctionnement simplifie le développement, l'adaptation et l'innovation.

Pour résumer, les entreprises qui utilisent une architecture pilotée par les événements dans leurs systèmes modernes proposent des expériences plus rapides et personnalisées, automatisent leurs opérations et restent agiles, même en cas de hausse du volume de demandes et de données. En adoptant l'architecture pilotée par les événements, les entreprises passent d'une approche réactive à proactive. Elles atteignent la vitesse, le niveau de flexibilité et de résilience requis pour prospérer dans un monde digital dynamique.

Qu'est-ce qu'un événement ?

Un événement est une action ou un changement d'état qui a un effet sur l'entreprise, par exemple un client qui effectue un paiement par carte de crédit, un passager qui s'enregistre pour un vol, un utilisateur qui réinitialise son mot de passe ou un entrepôt qui met à jour ses stocks. Pour le dire autrement, un événement est un message court qui indique que « quelque chose vient de se produire », ce qui donne aux autres éléments du système l'occasion de réagir sans attendre.

Une entreprise pilotée par les événements est une entreprise qui capture ces événements et y réagit au fur et à mesure. Voici quelques exemples d'événements courants :

Composants clés de l'architecture pilotée par les événements

Dans un souci de cohérence, les modèles d'événements définissent la structure et le format des événements, notamment les zones, les types de données et les règles d'interprétation.

Dans une architecture pilotée par les événements, les applications jouent le rôle de diffuseurs (elles produisent ou capturent les événements) ou de consommateurs (elles traitent les événements et prennent des mesures en conséquence). Les diffuseurs transmettent en temps réel les événements aux consommateurs via un courtier d'événements, à savoir un middleware orienté messagerie. Les consommateurs peuvent ensuite traiter l'événement et déclencher leurs propres actions, workflows ou événements. Cette conception favorise la réactivité en temps réel et les décisions intelligentes à mesure que les données affluent.

Le courtier d'événements gère les canaux d'événements qui connectent les diffuseurs et les consommateurs ; garantit la fiabilité de la transmission et offre souvent des fonctionnalités telles que le filtrage, la persistance et la rediffusion. En découplant les diffuseurs et les consommateurs, le courtier d'événements rend le système plus résilient et évolutif.

Dans une architecture très simple au sein de laquelle un seul diffuseur et un seul consommateur communiquent directement, les courtiers sont facultatifs. Mais dans la plupart des entreprises, plusieurs sources envoient des événements à plusieurs consommateurs ; un courtier, voire un réseau de courtiers (également appelé « maillage d'événements »), est donc nécessaire. L'utilisation d'un courtier ou d'un maillage d'événements entraîne un « couplage lâche » des applications.

Communication synchrone versus asynchrone

Dans une architecture pilotée par les événements avec une communication synchrone, le diffuseur attend que le destinataire traite l'événement et y réagisse. Tel est le cas par exemple lorsqu'un client Web envoie une requête HTTP et attend la réponse du serveur. La communication synchrone présente généralement un couplage étroit et s'avère plus lente en cas de charge élevée. Elle « empêche » le diffuseur d'accomplir sa prochaine tâche tant qu'il n'a pas reçu la réponse du consommateur.

Dans une architecture pilotée par les événements avec une communication asynchrone, le diffuseur n'attend pas une réponse immédiate. Il peut poursuivre ses tâches en attendant que le consommateur traite le message. Tel est le cas par exemple lorsqu'un système publie un événement via un courtier d'événements et que le consommateur le traite de façon indépendante. La communication asynchrone n'est pas bloquante. Elle est évolutive, avec un couplage lâche, ce qui la rend idéale pour les systèmes en temps réel et distribués.

Modèles fondés sur les requêtes versus les événements dans une architecture pilotée par les événements

Dans le modèle piloté par les requêtes, l'interaction commence par la requête d'un consommateur d'événements auprès d'un serveur, et se poursuit avec la réponse du serveur. Ce modèle fonctionne en mode pull : le consommateur demande activement des données ou des services au serveur lorsqu'il a en besoin, car il ne reçoit pas de mises à jour automatiques. Il peut être synchrone ou asynchrone. Les modèles pilotés par les requêtes sont répandus dans les applications Web et les API traditionnelles.

Dans le modèle piloté par les événements, l'interaction commence par un événement, à savoir un changement d'état ou une action qui déclenche un traitement. Les composants réagissent automatiquement en cas d'événement (par exemple, publication/abonnement). Ce modèle fonctionne en mode push : le système transmet automatiquement les événements et les mises à jour en temps réel au consommateur, sans attendre de demande de sa part. Les modèles pilotés par les événements sont asynchrones, découplés et gages de réactivité en temps réel.

Pour résumer, voici les principales différences entre ces modèles : dans les modèles pilotés par les requêtes, les utilisateurs demandent des données lorsqu'ils en ont besoin ; les modèles pilotés par les événements réagissent automatiquement.

Modèles courants d'architecture pilotée par les événements

Les modèles d'architecture pilotée par les événements sont des approches de conception répandues qui déterminent comment un système piloté par les événements capture, traite et consomme les événements. Les modèles fournissent des stratégies réutilisables de gestion de la communication et des changements d'état. Ces stratégies sont évolutives et découplées. Les entreprises utilisent les modèles d'architecture pilotée par les événements durant la conception et la mise en œuvre afin de relever des défis courants. On peut notamment citer la diffusion des événements, la cohérence des données et l'évolutivité dans des environnements asynchrones à couplage lâche.

Dans une architecture pilotée par les événements, les événements peuvent être transmis de quatre manières :

Styles de traitement des événements

Le style de traitement des événements décrit comment le système détecte les événements, les interprète et y réagit. Il définit la complexité de la logique, la temporalité et les relations entre les événements compris par le système. Il existe trois approches de traitement des événements une fois qu'ils sont parvenus au consommateur : le traitement d'événement simple, le traitement d'événement complexe et le traitement de flux d'événements.

1. Traitement d'événement simple : les consommateurs traitent chaque événement tel qu'il est reçu. Voici quelques exemples :

2. Traitement d'événement complexe : les consommateurs traitent une série d'événements pour détecter des modèles et effectuer des actions en fonction du résultat. Voici quelques exemples :

3. Traitement des flux d'événements : les consommateurs traitent un flux constant de données (données mobiles) et prennent des mesures en temps réel à l'aide d'une plateforme de flux de données. Voici quelques exemples :

Les entreprises choisissent leur style de traitement des événements en fonction de leurs besoins spécifiques et de leurs cas d'utilisation.

Mode d'emploi de l'architecture pilotée par les événements

Une architecture pilotée par les événements est un modèle d'intégration conçu pour publier, capturer, traiter les événements et y répondre en temps réel dans des systèmes distribués. Lorsqu'un événement se produit dans une application, un message est automatiquement envoyé à toutes les autres applications qui doivent en avoir connaissance, afin qu'elles puissent à leur tour prendre des mesures en conséquence.

Voici comment fonctionne l'architecture pilotée par les événements, étape par étape :

  1. Un événement se produit : un changement d'état significatif se produit, par exemple un client passe commande, un capteur détecte un pic de température ou un paiement échoue.
  2. Le diffuseur soumet l'événement : l'application dans laquelle s'est produit l'événement agit comme diffuseur et publie l'événement via un courtier.
  3. Le courtier transfère l'événement : le courtier d'événements agit comme intermédiaire afin de gérer les canaux d'événements et de transmettre l'événement à tous les consommateurs intéressés. Il veille à la fiabilité, à l'évolutivité et au découplage de la communication.
  4. Le consommateur réagit à l'événement : les applications ou les services qui se sont abonnés au canal d'événements traitent l'événement et prennent les mesures nécessaires (mettre à jour les stocks, envoyer un e-mail de conformation, déclencher une alerte, etc.).

Les architectures fondées sur les événements étant asynchrones et découplées, les applications n'ont pas besoin d'avoir connaissance les unes des autres pour partager des informations et exécuter des tâches en temps réel. Les informations sur les événements, ou les messages, peuvent circuler librement et automatiquement entre les applications. Par conséquent, ce modèle d'architecture est beaucoup plus rapide et résilient que les modèles traditionnels pilotés par les requêtes et les réponses, dans lesquels une application doit demander à une autre les informations spécifiques dont elle a besoin et attendre la réponse avant de passer à la tâche suivante. De plus, compte tenu de sa nature découplée, l'architecture pilotée par les événements est généralement considérée comme une bonne pratique dans la communication de microservices.

Cas d'utilisation et exemples concrets

L'architecture pilotée par les événements crée des expériences digitales modernes dans tous les secteurs, de la banque à la logistique en passant par le Retail et la production. En encourageant l'automatisation pilotée par l'IA, la veille événementielle et la réactivité en temps réel, l'architecture pilotée par les événements aide les entreprises à moderniser leur IT, à découpler les systèmes hérités et à fluidifier leurs opérations dans les environnements multiclouds.

Les exemples suivants illustrent le fonctionnement de l'architecture pilotée par les événements en pratique.

Secteur de la restauration

  1. Un étudiant commande une pizza à l'aide d'une application de livraison de repas. L'application enregistre ses informations de base (nom, adresse, informations de paiement et commande) et publie l'événement « commande de pizza ».
  2. La pizzeria s'abonne à l'événement, traite la commande et publie son propre événement « commande prête » sur le service de livraison.
  3. Ensuite, le service affecte un chauffeur-livreur, détermine l'heure d'arrivée prévue et avertit le client que sa pizza est en route.

E-commerce

  1. Un client entre les informations de sa carte de crédit sur un site de e-commerce, qui publie l'événement « paiement soumis ».
  2. Le système de paiement s'abonne à l'événement, traite le paiement et émet son propre événement « paiement traité », indiquant s'il est accepté ou refusé, puis le renvoie à l'IU du site Web.
  3. L'IU affiche le statut du paiement au client et l'invite à suivre les étapes suivantes.

Voici d'autres exemples d'architecture pilotée par les événements :

Télémétrie IoT

Analytique et veille événementielle

Automatisation

Transactions financières

Supply Chain

Modernisation IT et découplage des systèmes hérités

Notifications

Voici des cas typiques d'utilisation de l'architecture pilotée par les événements :

Avantages d'une architecture pilotée par les événements

Les entreprises peuvent tirer parti des avantages d'une architecture pilotée par les événements au sein de leurs systèmes modernes. Voici les principaux avantages de l'architecture pilotée par les événements :

  1. Réactivité en temps réel et workflows intelligents : dans une architecture pilotée par les événements, le système réagit instantanément aux événements et déclenche automatiquement des workflows et des décisions en temps réel. C'est une procédure particulièrement importante en période de pic de demandes, par exemple lors de ventes importantes ou en période de fêtes. Les opérations peuvent appliquer cette réactivité aux opérations quotidiennes et améliorer de nombreux aspects, dont l'automatisation de la Supply Chain, la détection de la fraude et l'engagement client personnalisé.
  2. Vitesse et efficacité de la communication asynchrone : les applications d'une architecture pilotée par les événements communiquent de manière asynchrone, c'est-à-dire que les diffuseurs publient des messages sur les événements sans attendre que les consommateurs les reçoivent. Cette approche non bloquante améliore les performances, réduit la latence et garantit l'absence de goulets d'étranglement lors du traitement de grands volumes d'événements.
  3. Flexibilité et évolutivité via le découplage et le couplage lâche : dans une architecture pilotée par les événements, les composants sont découplés ou à couplage lâche. Ils fonctionnent de façon autonome et ne dépendent donc pas de la disponibilité ou de la logique interne de l'un ou de l'autre. Ce mode de fonctionnement permet de mettre à jour, tester et déployer des services facilement, sans perturber le système dans son ensemble. Le découplage facilite aussi l'ajout de diffuseurs et de consommateurs : l'entreprise évolue en toute fluidité en fonction de ses besoins.
  4. Résilience et isolement des pannes : lorsque les services sont découplés, la défaillance d'un composant n'affecte pas le système tout entier. Chaque défaillance est indépendante, ce qui rend l'architecture plus durable et résistante aux pannes que les modèles traditionnels au couplage étroit.
  5. Intégration pérenne : le couplage lâche et la conception asynchrone font de l'architecture pilotée par les événements une solution de choix pour la modernisation IT, le découplage des systèmes hérités et les opérations multiclouds. Les entreprises deviennent assez flexibles pour intégrer de nouvelles technologies comme l'automatisation pilotée par l'IA et la veille événementielle sans avoir à réécrire les systèmes core.

Défis, limites et bonnes pratiques

Même si les architectures pilotées par les événements présentent des avantages de taille, elles posent aussi des défis de conception et d'exploitation que les entreprises doivent anticiper. Lors de la mise en œuvre de cette architecture, n'oubliez pas de tenir compte des défis, limites et bonnes pratiques ci-dessous. Vous aurez alors l'assurance d'instaurer des systèmes pilotés par les événements évolutifs, résilients et bien gérés.

Défis

Zoom sur l'intégration du maillage d'événements

Le maillage d'événements est une fonctionnalité architecturale qui connecte différents courtiers d'événements dans divers hyperscalers et environnements privés, hybrides et multiclouds. Le maillage d'événements offre un ensemble complet de services avancés : flux d'événements, gestion des événements, surveillance, routage dynamique des messages et filtrage fin. Grâce à la connexion des courtiers au sein d'un maillage organisé, les entreprises peuvent :

Pilier des systèmes modernes, le maillage d'événements est une couche essentielle des architectures évolutives et pilotées par les événements en temps réel. Il garantit une réactivité instantanée tout en simplifiant l'intégration, en réduisant le chaos autour des événements et en renforçant les capacités de dépannage dans les environnements distribués.

Limites de l'architecture pilotée par les événements

Bonnes pratiques de l'architecture pilotée par les événements

Caractéristiques de l'architecture pilotée par les événements

De par ses caractéristiques de base, l'architecture pilotée par les événements convient parfaitement aux environnements distribués, hybrides et multiclouds.

Ensemble, ces caractéristiques font de l'architecture pilotée par les événements une approche puissante de création de systèmes résilients, flexibles, instantanés et prêts à se développer — et ce, pour la prise en charge de microservices comme l'intégration d'environnements cloud ou l'activation d'applications fondées sur des processus pilotés par les événements.

FAQ

Qu'est-ce qu'une architecture pilotée par les événements ?
Dans le cadre d'une architecture pilotée par les événements, un événement est un changement significatif de l'état d'un processus ou d'un système, par exemple la création, la mise à jour ou l'achèvement d'une entité. Les événements sont des signaux émis par les applications en cas de fait important. Ils alertent les autres systèmes en temps réel afin qu'ils puissent réagir sans couplage étroit. Parmi les événements, on peut citer le paiement, réussi ou non, d'un client, la réception ou le départ d'une livraison de l'entrepôt, la détection d'un pic de température par un capteur de machine.
En quoi l'architecture pilotée par les événements est-elle différente de celle pilotée par les requêtes ?

Le mode de communication et de réaction des systèmes face aux changements constitue la principale différence entre ces architectures. Dans le modèle piloté par les requêtes, l'interaction commence lorsque le client demande des données ou exige une action d'un serveur et que le serveur répond. Ce modèle est habituellement synchrone (le demandeur attend [se bloque] jusqu'à l'arrivée de la réponse) et fonctionne en mode pull (les applications ne reçoivent des informations mises à jour que si elles les demandent).

Dans un modèle piloté par les événements, l'interaction commence par un événement, c'est-à-dire un changement d'état significatif dans un système de gestion. Les applications y réagissent automatiquement. Les systèmes pilotés par les événements sont asynchrones : les diffuseurs publient des événements sans attendre la réponse du consommateur. Ce modèle en mode push avec un couplage lâche soutient le fonctionnement indépendant des applications et le traitement en temps réel des événements dans les environnements distribués, hybrides et multiclouds.

Quels sont les principaux composants d'une architecture pilotée par les événements ?

Les principaux composants d'une architecture pilotée par les événements sont les diffuseurs, les consommateurs, les courtiers d'événements et les canaux d'événements. Ensemble, ces composants font naître un flux d'événements asynchrone à couplage lâche qui assure des interactions évolutives et en temps réel dans les environnements distribués, hybrides et multiclouds :

  • Diffuseurs : applications qui génèrent ou enregistrent des événements tels que des mises à jour de commande, des paiements, des relevés de capteurs, et les publient dans un système piloté par les événements
  • Consommateurs : entités qui s'abonnent à des événements, les traitent et y réagissent en déclenchant des workflows, en actualisant des données, en envoyant des notifications ou en lançant des processus en aval
  • Courtiers d'événements : middleware de messagerie qui transfèrent les événements des diffuseurs aux consommateurs et proposent des fonctionnalités telles que la livraison fiable, le filtrage, le routage dynamique, la persistance et la rediffusion
  • Canaux d'événements : moyen de transmission géré par le courtier d'événements qui connecte les diffuseurs et les consommateurs ; les diffuseurs publient des événements sur les canaux et les consommateurs s'abonnent aux canaux qui les intéressent
Quels sont les modèles d'architecture pilotée par les événements les plus courants ?

Les modèles d'architecture pilotée par les événements sont des approches de conception réutilisables qui définissent les modalités de saisie, de routage, de conservation et de consommation des événements dans un système piloté par les événements. Voici les principaux modèles d'architecture pilotée par les événements :

  • Publication/abonnement (pub/sub) : les diffuseurs publient des événements sur un canal, de multiples consommateurs s'abonnent et réagissent automatiquement.
  • Flux d'événements : les diffuseurs publient des flux continus d'événements via un courtier, les consommateurs peuvent lire, rejouer ou traiter ces événements à tout moment.
  • Séparation des responsabilités des requêtes de commande (CQRS) : les opérations de lecture et d'écriture sont séparées (deux modèles) afin de propager les mises à jour de façon asynchrone.
  • Sourcing d'événements : le système enregistre chaque changement d'état en tant qu'événement immuable dans un journal « append-only », puis reconstitue l'état actuel en rejouant les événements.
Quels sont les avantages offerts par l'architecture pilotée par les événements ?

Voici les principaux atouts d'une architecture pilotée par les événements :

  • Couplage lâche : les applications fonctionnent de manière indépendante, sans connaître les rouages des unes et des autres, ce qui facilite les mises à jour, les intégrations et les extensions.
  • Évolutivité : l'ajout de nouveaux diffuseurs et consommateurs est simple ; les charges de travail évoluent dans les environnements hybrides et multiclouds.
  • Résilience : les services découplés isolent les défaillances afin qu'un seul composant en panne n'affecte pas tout le système.
  • Vitesse et réactivité en temps réel : grâce à la communication asynchrone non bloquante, les systèmes réagissent immédiatement aux événements et traitent de grands volumes avec une latence faible.