SAP-C02

Deep Dive

Todas las guías
Practicar ahora
D2 · Diseño de nuevas soluciones

Arquitecturas event-driven: EventBridge, Step Functions y Kinesis

El dominio D2 (29%) cubre el diseño de nuevas soluciones cloud-native. Las arquitecturas orientadas a eventos son el patrón central para sistemas desacoplados y escalables en AWS a nivel profesional.

Icon-Architecture/48/Arch_Amazon-EventBridge_48

Patrones event-driven a escala empresarial

📢

Fan-out

Un evento desencadena múltiples consumidores independientes en paralelo. SNS → múltiples SQS queues o Lambda functions.

Orden creada → notificar inventario + facturación + email al cliente

💃

Event Choreography

Cada servicio reacciona a eventos y emite nuevos eventos. Sin orquestador central. Más desacoplado pero más difícil de observar.

Microservicios que publican y consumen de EventBridge sin conocerse entre sí

🎭

Event Orchestration

Un orquestador central (Step Functions) dirige el flujo llamando a servicios en secuencia. Mejor visibilidad pero mayor acoplamiento.

Step Functions ejecuta Lambda → DynamoDB → SES → notifica al usuario

Icon-Architecture/48/Arch_Amazon-EventBridge_48

Amazon EventBridge — event bus empresarial

EventBridge es el event bus serverless de AWS. Recibe eventos de servicios AWS, SaaS partners y aplicaciones propias, los filtra con reglas basadas en patrones, y los enruta a targets. Anteriormente llamado CloudWatch Events.

Componentes clave

Event Bus

Canal donde fluyen los eventos. Por defecto existe el "default" bus (eventos de servicios AWS). Se pueden crear custom buses para apps propias y SaaS.

Rules

Filtros con patrones JSON que determinan qué eventos se envían a qué targets. Soporta content-based filtering avanzado.

Targets

20+ targets: Lambda, SQS, SNS, Step Functions, Kinesis, ECS Task, SSM, CodePipeline, cross-account event bus y más.

Schema Registry

Registra y versiona el esquema (formato) de los eventos. Genera código de binding automáticamente.

Pipes

Integración punto a punto con transformación y enriquecimiento: source → filter → enrich → target.

EventBridge vs SNS — cuándo usar cada uno

EventBridgeSNS
Filtrado basado en contenido del eventoFiltrado por message attributes (limitado)
Routing a 20+ tipos de targetsTargets: Lambda, SQS, HTTP, email, SMS
Schema Registry con generación de códigoSin schema registry
Eventos de 200+ SaaS partnersSolo eventos de producción AWS
Cross-account y cross-region nativamenteCross-account con resource policy
Latencia ~1s (más lento)Latencia sub-segundo (más rápido)

EventBridge Scheduler

EventBridge Scheduler (no confundir con Rules de tipo cron) permite crear schedules one-time o recurrentes para invocar targets. Soporta millions de schedules por cuenta con ventanas flexibles de ejecución. Reemplaza el uso de CloudWatch Events + Lambda para scheduling.

Icon-Architecture/48/Arch_AWS-Step-Functions_48

AWS Step Functions — orquestación de workflows

Step Functions es el servicio de orquestación de AWS. Define flujos de trabajo (state machines) en Amazon States Language (ASL/JSON) que coordinan múltiples servicios AWS con lógica de retry, branching, error handling y paralelismo.

CaracterísticaStandard WorkflowsExpress Workflows
Duración máximaHasta 1 añoHasta 5 minutos
Ejecuciones simultáneas2,000 (por defecto)Más de 100,000/seg
Semántica de ejecuciónExactly-onceAt-least-once
Modelo de costoPor transición de estadoPor duración + número de ejecuciones
Historial auditableSí — CloudWatch y Step Functions consoleSolo CloudWatch Logs
Mejor paraÓrdenes, aprobaciones, flujos críticosIoT, streaming, alta concurrencia

Tipos de estados en ASL

Task

Invoca un servicio AWS (Lambda, ECS, DynamoDB, etc.) o ejecuta actividades.

Choice

Branching condicional basado en variables de estado.

Parallel

Ejecuta múltiples ramas en paralelo y espera a que todas completen.

Map

Itera sobre un array procesando cada ítem en paralelo.

Wait

Pausa el workflow hasta una fecha/tiempo o señal externa.

Pass/Fail/Succeed

Manipulación de estado, manejo de errores y finalización.

SDK Integrations (Optimized) vs Lambda Invoke

Step Functions tiene integraciones nativas con 200+ APIs de servicios AWS sin necesidad de Lambda como intermediario. Por ejemplo, invocar DynamoDB:PutItem directamente desde un Task state. Esto reduce latencia y costo vs usar Lambda solo para llamar a otro servicio.

Icon-Architecture/48/Arch_Amazon-Kinesis_48

Amazon Kinesis — streaming de datos en tiempo real

ServicioModeloRetenciónConsumoMejor para
Kinesis Data StreamsPub/Sub de streams24h–365 díasKCL, Lambda, SDK — tú gestionas los consumersProcesamiento en tiempo real con control total del consumer. Múltiples consumidores del mismo stream.
Kinesis Data FirehoseETL gestionadoNo guarda (delivery directo)Automático — entrega a S3, Redshift, OpenSearch, SplunkIngesta y entrega automática a destinos de analytics sin código.
Kinesis Data AnalyticsQueries en streamingProcesa en tiempo realFlink o SQL sobre streams de KDS/FirehoseAnálisis y transformación de streams con SQL o Apache Flink.
Kinesis Video StreamsStreaming de videoConfigurableSDK, HLS, DASH, WebRTCIngestar y procesar video de cámaras/dispositivos IoT.

Kinesis Data Streams — conceptos de capacidad

    ShardUnidad de capacidad: 1 MB/s write, 2 MB/s read. Se escala añadiendo shards.
    Partition KeyDetermina a qué shard va cada record. Misma partition key = mismo shard = orden garantizado.
    ProvisionedModeEscalado manual de shards. Predecible para cargas conocidas.
    On-Demand ModeAuto-escala según el tráfico. Sin gestión de shards. Más caro por MB.
    Enhanced Fan-OutCada consumer registrado obtiene 2 MB/s dedicados (no compartidos). Para múltiples consumers del mismo stream.

Kinesis vs SQS — decisión de diseño

¿Múltiples consumidores leen el mismo dato?

Kinesis (fan-out nativo)

¿Necesitas orden garantizado dentro de una clave?

Kinesis (mismo shard)

¿Necesitas replay de datos históricos?

Kinesis (retención hasta 365 días)

¿Cada mensaje debe ser procesado exactamente una vez?

SQS (exactly-once con deduplication)

¿Desacoplamiento simple punto a punto?

SQS (más simple de gestionar)

¿Análisis de series temporales en tiempo real?

Kinesis Data Analytics + KDS

Icon-Architecture/48/Arch_Amazon-Simple-Notification-Service_48

SNS y SQS — patrones avanzados

SNS — patrones avanzados para el SAP-C02

SNS Message Filtering

Cada subscripción SQS/Lambda puede tener un filter policy JSON. Solo recibe mensajes que coinciden con los attributes del mensaje. Evita enrutar todos los mensajes a todos los consumers.

SNS FIFO + SQS FIFO

Para fan-out con orden garantizado y exactly-once delivery. SNS FIFO → múltiples SQS FIFO queues. Cada queue recibe los mensajes en el mismo orden.

SNS + DLQ

Subscripciones SQS pueden tener Dead Letter Queue para mensajes que no se pueden entregar después de múltiples intentos.

SQS — características de alto nivel

Long PollingWaitTimeSeconds > 0: Lambda/consumer espera hasta que haya mensajes. Reduce llamadas vacías y costo.
Visibility TimeoutTiempo que un mensaje es invisible tras ser recibido. Si el consumer falla, el mensaje reaparece. Debe ser mayor al tiempo de procesamiento.
Message Retention1 minuto a 14 días (default 4 días). Si el mensaje no se elimina en ese período, se descarta.
DLQ (Dead Letter Queue)Después de N intentos fallidos, el mensaje se mueve a la DLQ para análisis. maxReceiveCount configurable.
FIFO DeduplicationMessageDeduplicationId previene duplicados en 5 minutos. ContentBasedDeduplication usa hash del body.
Icon-Architecture/48/Arch_Amazon-EventBridge_48

Cuándo usar cada servicio de mensajería/eventos

EscenarioServicio recomendadoRazón
Desacoplar microservicios con workers independientesSQSCola simple, at-least-once, fácil de escalar con Lambda o ASG
Fan-out: un evento → múltiples procesadores en paraleloSNS + SQS (fan-out pattern)SNS distribuye el mismo mensaje a múltiples queues SQS
Reaccionar a eventos de servicios AWS (EC2 stop, S3 upload)EventBridge (default bus)Default bus recibe eventos nativos de 200+ servicios AWS
Integrar con Salesforce, Zendesk, DatadogEventBridge (SaaS bus)EventBridge tiene integraciones nativas con 200+ SaaS partners
Orquestar un proceso multi-paso con retry y compensaciónStep FunctionsVisualización del flujo, retry automático, exactly-once con Standard
Procesar stream de clickstream/IoT en tiempo realKinesis Data StreamsRetención, replay, múltiples consumers, orden por partition key
Entregar logs/eventos a S3 o Redshift sin códigoKinesis FirehoseEntrega gestionada con transformación Lambda opcional
Analizar stream en tiempo real con SQLKinesis Data AnalyticsFlink managed para queries sobre KDS o Firehose
Icon-Architecture/48/Arch_Amazon-EventBridge_48

Trampas frecuentes del examen

Trampa: "EventBridge y CloudWatch Events son servicios diferentes"

Realidad: Son el mismo servicio. EventBridge es la evolución de CloudWatch Events. Los conceptos son idénticos; EventBridge tiene más funcionalidades.

Trampa: "Step Functions Standard garantiza exactly-once siempre"

Realidad: Standard garantiza exactly-once para invocaciones de actividades y lambdas. Express es at-least-once. Ambos tienen retries configurables.

Trampa: "Kinesis Firehose permite múltiples consumidores como Kinesis Streams"

Realidad: FALSO. Firehose entrega a un solo destino (S3, Redshift, OpenSearch, etc.). Para múltiples consumidores del mismo stream, usa Kinesis Data Streams.

Trampa: "SQS FIFO garantiza exactamente-una-vez siempre"

Realidad: FIFO garantiza exactly-once dentro de la ventana de deduplicación de 5 minutos usando MessageDeduplicationId. Sin ese ID configurado, puede haber duplicados.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Una empresa de e-commerce procesa 50,000 órdenes por hora. Cuando se crea una orden, necesitan: (1) actualizar el inventario, (2) generar la factura, (3) enviar email de confirmación, y (4) publicar el evento en el Data Warehouse. Todos en paralelo. Las operaciones deben ser idempotentes. ¿Cuál es la arquitectura más apropiada?

Inicia sesión para llevar tu progreso.