Modèles pilotés par événements avec EventBridge

Déployer des applications sur AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Une commande, quatre réactions

  • Une commande doit atteindre la facturation, l'exécution, l'analytique, l'e-mail
  • Des appels directs vers les quatre sont fragiles et lents
  • Un événement se diffuse vers chaque consommateur

Un événement se diffusant depuis un sujet central vers plusieurs services en aval, en parallèle

Déployer des applications sur AWS

Choisir le bon service de messagerie

Grille 2x2 des services de messagerie AWS : file SQS avec flux producteur-consommateur, diffusion pub/sub SNS vers plusieurs abonnés, bus d'événements EventBridge avec routage par règles, et Kinesis avec fragments ordonnés et relecture

  • SQS : une file, un groupe de consommateurs, au moins une fois
  • SNS : pub/sub, envoie un message à de nombreux abonnés
  • EventBridge : route les événements par contenu vers plusieurs cibles
  • Kinesis Data Streams : flux ordonné, relecturable
Déployer des applications sur AWS

Le modèle de diffusion (fanout)

  • Un événement doit atteindre plusieurs consommateurs à la fois
  • Publiez sur un sujet SNS
  • Chaque file SQS s'abonne au sujet
  • Chaque consommateur reçoit sa copie, découplé

Modèle de diffusion SNS vers SQS : un sujet SNS publie vers plusieurs files SQS, chaque file servant son consommateur à son propre rythme

Déployer des applications sur AWS

Filtrer pour ne livrer que le nécessaire

  • Sans filtres, chaque abonné reçoit tous les événements
  • Politiques de filtre d'abonnement SNS : filtrer par attributs de message
  • Filtres de contenu EventBridge : faire correspondre des champs d'événement
  • Chaque consommateur ne reçoit que ses événements utiles

Filtre d'abonnement SNS et filtre de contenu EventBridge : chaque consommateur ne reçoit que les événements correspondant à sa règle, réduisant le traitement inutile et le coût

Déployer des applications sur AWS

Routage avec EventBridge

Schéma de routage EventBridge : bus recevant des événements de plusieurs sources, règles correspondant à des modèles, et événements routés vers Lambda, SQS et autres cibles

  • Event bus : reçoit des événements de nombreuses sources
  • Rule : un modèle d'événement qui fait correspondre certains événements
  • Target : où les événements correspondants sont envoyés
  • Un événement peut être routé vers plusieurs cibles
Déployer des applications sur AWS

Streaming avec Kinesis Data Streams

  • Un flux continu et temps réel d'enregistrements
    • Enregistrements ordonnés dans un shard
    • Relecturable : les consommateurs relisent depuis n'importe quel point
    • Plusieurs consommateurs lisent le même flux indépendamment
    • À utiliser pour clics, télémétrie, données à haut débit

Architecture Kinesis Data Streams : des producteurs écrivent des enregistrements ordonnés dans des shards numérotés, trois consommateurs lisent indépendamment à des positions différentes, avec une flèche de retour indiquant la relecture

Déployer des applications sur AWS

Lambda comme consommateur d'événements

  • Lambda peut être déclenché par SQS, SNS, EventBridge, Kinesis
  • Event source mapping interroge SQS et Kinesis pour vous
  • SNS et EventBridge poussent des événements vers Lambda
  • Traitement quasi temps réel sans serveurs à gérer

Lambda déclenchée par quatre sources d'événements : event source mapping interrogeant SQS et Kinesis par lots, tandis que SNS et EventBridge poussent les événements directement vers Lambda

Déployer des applications sur AWS

Passons à la pratique !

Déployer des applications sur AWS

Preparing Video For Download...