Integración de Aplicaciones y Eventos
En las arquitecturas de nube modernas basadas en microservicios, las aplicaciones ya no se construyen como un único bloque monolítico. En su lugar, se dividen en componentes independientes que se comunican de forma asíncrona mediante mensajería, buses de eventos y orquestadores de flujos de trabajo.
1. AWS Step Functions: Orquestación de Flujos de Trabajo #
AWS Step Functions es un servicio de orquestación visual completamente administrado basado en máquinas de estados (State Machines).
¿Qué problema resuelve? #
Cuando un proceso de negocio complejo requiere ejecutar múltiples funciones AWS Lambda en un orden determinado, manejar reintentos automáticos, gestionar tiempos de espera (timeouts) o bifurcar la lógica según condiciones:
- Escribir esa lógica dentro del código de cada Lambda genera código difícil de mantener (espagueti).
- Step Functions orquesta visualmente la secuencia de pasos, captura errores y garantiza que cada tarea se complete con éxito antes de pasar a la siguiente.
Tipos de flujos de trabajo: #
- Standard Workflows: Para flujos de larga duración (hasta 1 año) donde cada paso es auditable con historial de ejecución exacto (ej. procesamiento de pagos o pedidos).
- Express Workflows: Para flujos ultrarrápidos de alto volumen (hasta 5 minutos) con miles de transacciones por segundo (ej. ingesta de telemetría IoT).
2. Amazon EventBridge: El Bus de Eventos Serverless #
Amazon EventBridge es un bus de eventos sin servidor que facilita la creación de arquitecturas orientadas a eventos (Event-Driven Architectures).
Características principales: #
- Enrutamiento inteligente: Recibe eventos desde fuentes emisoras, aplica reglas de filtrado y los enruta hacia múltiples destinos (Lambda, SQS, SNS, Kinesis).
- Fuentes de eventos:
- Servicios de AWS: Por ejemplo, cuando se sube un archivo a S3 o se detiene una instancia EC2.
- Aplicaciones SaaS de terceros: Se integra de forma nativa con plataformas externas como Zendesk, Datadog, Shopify, Salesforce o Auth0 sin escribir código de integración.
- Eventos personalizados: Generados por tus propias aplicaciones.
- EventBridge Scheduler: Permite programar tareas y ejecuciones periódicas tipo cron altamente escalables (ej. ejecutar una tarea todos los lunes a las 09:00).
3. Amazon MQ: Mensajería Gestionada para Sistemas Legados #
Amazon MQ es un servicio de intermediación de mensajes administrado (managed message broker) compatible con protocolos estándar de la industria como Apache ActiveMQ y RabbitMQ.
¿Cuándo elegir Amazon MQ en lugar de SQS/SNS? #
- Si estás migrando una aplicación empresarial existente (legada o on-premises) que ya utiliza protocolos de mensajería estándar como JMS, MQTT, AMQP, STOMP o OpenWire.
- Te permite migrar a la nube de AWS rápidamente mediante una estrategia de Rehost o Replatform sin necesidad de reescribir el código de mensajería de tu aplicación.
4. AWS AppSync: APIs GraphQL Administradas #
AWS AppSync es un servicio completamente administrado para crear APIs GraphQL que conectan aplicaciones con datos y servicios de AWS (DynamoDB, Lambda, Aurora).
Características: #
- Permite a las aplicaciones consultar exactamente los datos que necesitan en una sola petición.
- Proporciona sincronización en tiempo real mediante WebSockets y suscripciones.
- Incluye capacidades de acceso sin conexión (offline data access) con sincronización automática al recuperar la conectividad.
5. Comparativa definitiva de integración para el examen #
| Servicio | Modelo / Naturaleza | Caso de uso principal en el examen |
|---|---|---|
| Amazon SQS | Cola de mensajes (Pull) | Desacoplar sistemas almacenando mensajes de 1 a 1 hasta que se procesan |
| Amazon SNS | Mensajería masiva (Push / Pub-Sub) | Enviar notificaciones inmediatas a múltiples suscriptores (SMS, email, SQS) |
| Amazon EventBridge | Bus de eventos (Event Bus) | Enrutar eventos entre servicios de AWS, apps SaaS de terceros y cron |
| AWS Step Functions | Orquestación visual (State Machine) | Coordinar flujos de trabajo secuenciales y paralelos con Lambdas |
| Amazon MQ | Broker compatible con ActiveMQ/RabbitMQ | Migrar apps existentes con protocolos estándar (JMS, AMQP, MQTT) |
| AWS AppSync | APIs GraphQL administradas | Sincronización en tiempo real y soporte offline para frontend/móvil |
Resumen del tema
Conceptos clave #
- AWS Step Functions: motor de orquestación visual para coordinar flujos multi-paso de Lambdas y microservicios con manejo de errores y reintentos.
- Amazon EventBridge: bus de eventos serverless que conecta aplicaciones con eventos de AWS, SaaS externos (Zendesk, Salesforce) y tareas programadas.
- Amazon MQ: servicio de mensajería gestionado para RabbitMQ y ActiveMQ que facilita la migración lift-and-shift de sistemas legados.
- AWS AppSync: plataforma de APIs GraphQL para aplicaciones web/móviles con suscripciones en tiempo real y persistencia offline.
Qué debes recordar #
Usa Step Functions para orquestar flujos de Lambdas, EventBridge para reaccionar a eventos SaaS y de AWS, Amazon MQ para migrar RabbitMQ/ActiveMQ sin reescribir código, y SQS/SNS para desacoplar componentes.