Patrones dirigidos por eventos con EventBridge

Implementación de aplicaciones en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Un pedido, cuatro reacciones

  • Un pedido debe llegar a facturación, logística, analítica y email
  • Llamar directamente a los cuatro es frágil y lento
  • Un evento se distribuye a cada consumidor

Un evento que se reparte desde un tema central a varios servicios en paralelo

Implementación de aplicaciones en AWS

Elegir el servicio de mensajería adecuado

Cuadrícula 2x2 de servicios de mensajería de AWS: cola SQS con flujo productor-consumidor, SNS pub/sub con fanout a varios suscriptores, EventBridge con enrutado por reglas, y Kinesis con shards ordenados y reproducción

  • SQS: una cola, un grupo de consumidores, al menos una vez
  • SNS: pub/sub, envía un mensaje a muchos suscriptores
  • EventBridge: enruta eventos por contenido a muchos destinos
  • Kinesis Data Streams: flujo ordenado y reproducible
Implementación de aplicaciones en AWS

El patrón fanout

  • Un evento debe llegar a varios consumidores a la vez
  • Publica en un tema de SNS
  • Cada cola SQS se suscribe al tema
  • Cada consumidor recibe su copia, desacoplado

Patrón fanout SNS a SQS: un tema de SNS publica en varias colas SQS, cada cola sirve a su consumidor de forma independiente y a su ritmo

Implementación de aplicaciones en AWS

Filtrar para que cada consumidor reciba solo lo necesario

  • Sin filtros, cada suscriptor recibe todos los eventos
  • Políticas de filtro de suscripción de SNS: por atributos del mensaje
  • Filtros de contenido de EventBridge: por campos del evento
  • Cada consumidor recibe solo sus eventos relevantes

Política de filtro de suscripción de SNS y filtro de contenido de EventBridge: cada consumidor recibe solo eventos que coinciden con su regla, reduciendo procesamiento y coste innecesarios

Implementación de aplicaciones en AWS

Enrutado con EventBridge

Diagrama de enrutado de EventBridge: el bus de eventos recibe de varias fuentes, reglas que coinciden con patrones y eventos enviados a Lambda, SQS y otros destinos

  • Event bus: recibe eventos de muchas fuentes
  • Rule: patrón de evento que coincide con ciertos eventos
  • Target: a dónde se envían los eventos coincidentes
  • Un evento puede ir a varios destinos
Implementación de aplicaciones en AWS

Streaming con Kinesis Data Streams

  • Flujo continuo y en tiempo real de registros
    • Registros ordenados dentro de un shard
    • Reproducible: los consumidores releen desde cualquier punto
    • Varios consumidores leen el mismo stream de forma independiente
    • Úsalo para clickstream, telemetría y alto volumen

Arquitectura de Kinesis Data Streams: productores escriben registros ordenados en shards numerados; tres consumidores leen de forma independiente en posiciones distintas, con una flecha de rebobinado que muestra la reproducción

Implementación de aplicaciones en AWS

Lambda como consumidor de eventos

  • Lambda puede activarse por SQS, SNS, EventBridge, Kinesis
  • Event source mapping consulta SQS y Kinesis por ti
  • SNS y EventBridge empujan eventos a Lambda
  • Procesamiento casi en tiempo real sin servidores que gestionar

Lambda activada por cuatro orígenes de eventos: event source mapping consulta SQS y Kinesis por lotes, mientras SNS y EventBridge envían eventos directamente a Lambda

Implementación de aplicaciones en AWS

¡Vamos a practicar!

Implementación de aplicaciones en AWS

Preparing Video For Download...