paint-brush
Event Streaming vs Event Sourcing : Maximiser l'efficacité de l'entreprisepar@datastax
1,367 lectures
1,367 lectures

Event Streaming vs Event Sourcing : Maximiser l'efficacité de l'entreprise

par DataStax7m2023/05/15
Read on Terminal Reader

Trop long; Pour lire

Quelle est la différence entre le streaming d'événements et le sourcing d'événements ? Quel est le bon moment pour choisir l'un ou l'autre des modèles ? Dans cet article, nous examinons chaque approche avec des architectures pilotées par les événements et apprenons ce qui convient à votre solution.
featured image - Event Streaming vs Event Sourcing : Maximiser l'efficacité de l'entreprise
DataStax HackerNoon profile picture


Les clients aiment être au courant des événements lorsqu'ils se produisent. Lorsqu'un client commande une nouvelle paire de chaussures et reçoit une notification indiquant que l'achat a été expédié, obtenir des mises à jour de l'état d'expédition à la minute avant son arrivée améliore l'expérience client globale.


Les mises à jour concernant votre commande sont des événements qui déclenchent une réponse dans unearchitecture événementielle (EDA). Un EDA est une conception logicielle qui réagit aux changements d'état (événements) et transmet ces événements à l'aide d'une architecture découplée. Cette architecture découplée peut utiliser plusieurs modèles de conception comme le modèle de publication-abonnement (pub-sub), où un producteur publie un événement et un abonné surveille les événements, mais aucun ne dépend de l'autre.


Le streaming d'événements et l'approvisionnement en événements représentent deux façons pour les organisations d'alimenter leurs EDA.


Avec le streaming d'événements, un flux continu de données circule entre les systèmes, les données représentant un nouvel état d'événements diffusés à l'aide du modèle pub-sub. Le sourcing d'événements, d'autre part, stocke chaque nouvel événement dans un journal d'ajout. Cela sert de source de vérité contenant un ordre chronologique des événements et des contextes.


L'approvisionnement en événements et le streaming d'événements sont souvent utilisés côte à côte dans les EDA, mais il est important de distinguer les deux car ils fonctionnent très différemment. Alors que les flux d'événements favorisent une communication plus accessible entre les systèmes, l'approvisionnement en événements fournit l'historique des événements en stockant les nouveaux événements dans un journal en ajout uniquement.


Ici, nous discuterons des deux méthodes de coordination d'événements et fournirons quelques cas d'utilisation pour chacune.


Streaming d'événements : découplez vos services

Le streaming d'événements utilise l'approche pub-sub pour permettre une communication plus accessible entre les systèmes. Dans le modèle architectural pub-sub, les consommateurs s'abonnent à un sujet ou à un événement, et les producteurs publient sur ces sujets pour la consommation des consommateurs. La conception pub-sub dissocie les systèmes de l'éditeur et de l'abonné, ce qui facilite la mise à l'échelle de chaque système individuellement.


Les systèmes d'éditeur et d'abonné communiquent via un courtier de messages comme Pulsar Apache . Lorsqu'un état change ou qu'un événement se produit, le producteur envoie les données (les sources de données incluent les applications Web, les médias sociaux et les appareils IoT) au courtier, après quoi le courtier associe l'événement à l'abonné, qui consomme ensuite l'événement.


Le streaming d'événements implique le flux continu de données provenant de sources telles que des applications, des bases de données, des capteurs et des appareils IoT. Les flux d'événements utilisent le traitement de flux, dans lequel les données sont traitées et analysées lors de la génération. Ce traitement rapide se traduit par des résultats plus rapides, ce qui est précieux pour les entreprises disposant d'une fenêtre de temps limitée pour agir, comme pour toute application en temps réel.


Le streaming d'événements offre plusieurs avantages aux entreprises ; Voici quelques-uns:


Expérience client améliorée

La diffusion et le traitement d'événements offrent aux organisations la possibilité d'enrichir l'expérience de leurs clients. Par exemple, un client passant une commande pour un dîner peut obtenir des mises à jour de statut instantanées, l'informant lorsque le véhicule de livraison est en route vers son emplacement ou s'il est arrivé. Cette expérience client accrue se traduit par une plus grande confiance, de meilleures critiques et une amélioration des revenus.

Atténuation des risques

Des applications telles que PayPal et d'autres applications de technologie financière peuvent utiliser la diffusion d'événements pour fournir une détection de fraude en ligne afin d'améliorer la sécurité à l'aide d'une surveillance en temps réel. Les algorithmes de fraude testent les circonstances d'un événement (achat ou transaction) à l'aide d'analyses prédictives pour détecter un écart par rapport à la norme (une valeur aberrante). Si le système détecte un événement aberrant ou inhabituel, il arrête la transaction ou empêche la carte de la terminer.

Coûts opérationnels réduits

En analysant les flux d'événements, les outils industriels peuvent enregistrer des mesures de performance et de santé pour évaluer la santé des équipements. Cette fonctionnalité permet aux organisations d'effectuer une maintenance prédictive sur les machines avant une panne totale, ce qui coûte plus cher à réparer. Dans la fabrication, par exemple, les organisations peuvent utiliser les flux Pulsar pour agréger et traiter les données à partir des paramètres de la machine comme la température ou la pression. Les ingénieurs pourraient définir la température maximale d'une machine et définir une alerte qui se déclencherait si cette température est dépassée. Les opérateurs de machine pourraient effectuer des vérifications et de la maintenance avant que des problèmes plus coûteux ne surviennent.


Comment le streaming d'événements est-il utilisé ?

Le streaming d'événements est essentiel pour les entreprises et les applications qui diffusent un volume élevé de données et dépendent d'informations rapides et exploitables. Ces applications incluent le commerce électronique, le commerce financier et les appareils IoT.


Les applications de trading financier utilisent le streaming d'événements pour publier des événements urgents où les clients souhaitent agir immédiatement. Par exemple, les utilisateurs peuvent s'abonner à un service backend qui envoie des mises à jour sur des événements spécifiques, comme une modification du cours de l'action, pour permettre une prise de décision rapide.


Le streaming d'événements dispose également d'applications de détection des risques et des fraudes dans les systèmes financiers qui traitent les paiements et autres transactions (et bloquent les transactions frauduleuses). Des algorithmes de fraude définis peuvent bloquer les transactions suspectes en analysant les données immédiatement après leur génération.


Event Sourcing : une histoire ordonnée

L'approvisionnement en événements stocke les données sous forme d'événements dans les journaux d'ajout. Le processus capture chaque modification de l'état d'une application dans un objet d'événement et stocke ces objets d'événement sous forme de journaux dans l'ordre chronologique. Avec l'approvisionnement en événements, les magasins d'événements compilent l'état d'une entité commerciale en tant qu'événement dans une séquence, et un changement d'état, comme de nouvelles commandes ou l'annulation d'une commande, ajoute le dernier état à la liste des événements.


Pour que la recherche d'événements fonctionne efficacement et consomme un minimum de ressources, chaque objet d'événement ne doit contenir que les détails nécessaires. Cela minimise l'espace de stockage et empêche l'utilisation de ressources précieuses dans le traitement des données qui conduisent à des informations non exploitables.


Les magasins d'événements compilent les événements et le contexte de l'entreprise ; l'ajout de longs flux aux journaux d'événements consomme rapidement le stockage de la base de données. Conserver uniquement les contextes d'événement nécessaires dans le cadre de l'objet d'événement permet de libérer de l'espace de stockage pour l'ajout de plusieurs journaux d'événements, qui génèrent des informations exploitables.


Les organisations peuvent choisir d'utiliser des « instantanés » pour aider à optimiser les performances dans de tels cas. Les instantanés permettent de stocker l'état actuel de l'entité. Connaître l'état actuel peut uniquement impliquer de tirer les instantanés et de recréer une chronologie pour connaître l'état le plus actuel.

Illustrons cela. Supposons que nous disposions d'une base de données faisant le point sur les articles récents d'une boutique e-commerce :




La plupart des bases de données ne stockent que l'état actuel. Si nous devions rendre compte de la façon dont nous sommes arrivés à la valeur finale du stock de 91, il n'y aurait aucune certitude ou clarté quant à la façon dont nous y sommes arrivés. L'approvisionnement en événements enregistre chaque changement d'état dans un journal, ce qui rend possible le suivi de l'historique des événements pour l'analyse et l'audit des causes profondes.


Cette image illustre la recherche d'événements et montre trois événements, chacun avec la date, la quantité et le type d'élément de la base de données. Dans ce cas, nous pouvons effectuer un retraçage sur la façon dont nous sommes arrivés au montant final de 91.



Les organisations de soins de santé sont l'un des secteurs les plus réglementés, avec des réglementations en constante évolution pour protéger les informations des clients. Ils ont besoin d'une solution de stockage flexible qui s'adapte aux besoins croissants en données tout en maintenant une migration facile des systèmes hérités vers les nouvelles technologies.


En utilisant les magasins d'événements comme source unique de vérité, les systèmes de santé peuvent s'appuyer sur l'état immuable des journaux d'événements pour connaître l'état réel de leurs données et faire des projections précieuses en utilisant le traitement de flux en temps réel. Les entreprises de vente au détail et de commerce électronique pourraient acquérir une meilleure connaissance de leurs clients en analysant les grands magasins événementiels durables, ce qui les aide à créer des expériences client plus personnalisées.


Différences entre le streaming d'événements et l'approvisionnement d'événements

Il existe quelques similitudes entre le streaming d'événements et le sourcing d'événements. D'une part, chaque méthode de coordination d'événements utilise une architecture de microservices découplée, ce qui contribue à améliorer l'évolutivité et les performances.


Bien que les magasins d'événements et les flux diffèrent en termes de durabilité d'état, ils sont essentiels pour fournir les états d'événement actuels des applications à utiliser dans l'analyse et la prise de décisions commerciales. En outre, les deux méthodes de coordination d'événements possèdent des capacités de stockage durables, bien que les magasins d'événements offrent généralement un stockage étendu plus long que les flux d'événements.


Ici, approfondissons quelques différences clés entre le streaming d'événements et l'approvisionnement d'événements.


Optimisation

Le streaming d'événements est optimal pour une communication plus accessible entre les données en mouvement en dissociant les éditeurs des abonnés et en facilitant la publication de millions de messages à haute performance. D'autre part, l'approvisionnement en événements aide à établir l'historique des événements en stockant chaque nouvel état d'une entité dans un journal en ajout uniquement.

Mouvement de données

Pour la recherche d'événements, les données existent au repos car les événements sont immuables. Cependant, les flux d'événements impliquent des données toujours en transit, passant entre plusieurs systèmes de stockage tels que des bases de données, des capteurs et des applications.



Emballer

Le streaming d'événements et l'approvisionnement en événements aident à coordonner les événements dans une architecture pilotée par les événements. Bien que leur utilisation et leur valeur soient différentes, ils fonctionnent bien ensemble pour aider à créer une application durable et performante.


Le streaming d'événements utilise le modèle pub-sub découplé pour diffuser en continu des données provenant de diverses sources, ce qui aide à orienter la prise de décision commerciale. Malheureusement, bien que les outils de diffusion d'événements puissent posséder un stockage durable, ils ne sont pas conçus pour stocker les messages pendant longtemps, car les fonctionnalités de stockage durable ne persistent que suffisamment longtemps pour les rendre tolérants aux pannes et résilients.


On peut voir l'approvisionnement en événements comme un sous-ensemble ou un composant du streaming d'événements. La recherche d'événements ajoute un nouvel événement à la liste actuelle des événements de manière ordonnée. Il peut également servir de source de vérité pour des audits fiables et obtenir à tout moment l'état actuel des événements. L'approvisionnement en événements est crucial pour les industries financières avec de lourdes exigences réglementaires et d'audit et un magasin fiable pour suivre et construire l'état actuel des événements. En revanche, le streaming d'événements est crucial dans les applications de trading financier où les actions ont une fenêtre limitée dans le temps et nécessitent une action immédiate.


EDA n'est pas nécessairement une destination. C'est une voie à suivre, entraînant certaines performances et caractéristiques du système. Par exemple, l'approvisionnement en événements découple un ensemble de microservices afin qu'ils deviennent moins dépendants les uns des autres. Cela favorise la résilience et une itération plus facile, entre autres avantages. Combinés à l'approvisionnement en événements, les microservices ont la possibilité de rejouer les événements ainsi qu'un journal complet des modifications pour une fonctionnalité donnée comme le profil d'un utilisateur. Ce type d'architecture ouvre de nouvelles possibilités au sein des systèmes existants.



Également publié ici.