Jonatan Matajonmatum.com
conceptosnotasexperimentosensayos
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Conceptos

Arquitectura Orientada a Eventos

Patrón arquitectónico donde los componentes se comunican mediante eventos asíncronos, permitiendo sistemas desacoplados, escalables y reactivos.

seed#event-driven#architecture#async#decoupling#events#messaging

¿Qué es?

La arquitectura orientada a eventos es un patrón donde los componentes producen y consumen eventos de forma asíncrona. Un evento representa algo que ocurrió — un pedido creado, un archivo subido, un usuario registrado. Los productores no saben quién consume sus eventos; los consumidores no saben quién los produce.

Componentes

  • Evento: registro inmutable de algo que ocurrió
  • Productor: componente que emite eventos
  • Consumidor: componente que reacciona a eventos
  • Broker/Bus: infraestructura que enruta eventos

Patrones

  • Event notification: notificar que algo ocurrió (sin datos completos)
  • Event-carried state transfer: el evento contiene todos los datos necesarios
  • Event sourcing: el estado se deriva de la secuencia de eventos
  • CQRS: separar lecturas de escrituras usando eventos

Comparación de brokers

BrokerModeloOrdenamientoRetenciónCaso de uso
AWS SQSCola (point-to-point)FIFO opcional14 días máxDesacoplamiento simple entre servicios
AWS SNSPub/sub (fan-out)No garantizadoSin retenciónNotificaciones a múltiples suscriptores
AWS EventBridgeBus de eventosPor partición24h replayRouting basado en contenido, integración SaaS
Apache KafkaLog distribuidoPor particiónConfigurableStreaming de alto volumen, event sourcing
RabbitMQCola con exchangesPor colaConfigurableRouting complejo, protocolos múltiples

Beneficios

  • Desacoplamiento: productores y consumidores evolucionan independientemente
  • Escalabilidad: agregar consumidores sin modificar productores
  • Resiliencia: fallos aislados, reintentos automáticos
  • Auditabilidad: historial completo de eventos

Desafíos

  • Consistencia eventual (no inmediata)
  • Debugging más complejo (flujos distribuidos)
  • Ordenamiento de eventos
  • Idempotencia en consumidores

¿Por qué importa?

Las arquitecturas event-driven desacoplan servicios en el tiempo y el espacio. Un servicio publica un evento sin saber quién lo consume, lo que permite escalar, modificar y reemplazar componentes de forma independiente. Es el patrón que habilita sistemas verdaderamente modulares.

Referencias

  • What do you mean by Event-Driven? — Martin Fowler, 2017.
  • AsyncAPI — AsyncAPI Initiative, 2024. Especificación para APIs asíncronas y event-driven.
  • EventBridge Documentation — AWS, 2024. Servicio de bus de eventos serverless.

Contenido relacionado

  • Serverless

    Modelo de computación en la nube donde el proveedor gestiona la infraestructura automáticamente, permitiendo ejecutar código sin aprovisionar ni administrar servidores, pagando solo por el uso real.

  • AWS EventBridge

    Bus de eventos serverless de AWS que conecta aplicaciones usando eventos, permitiendo arquitecturas desacopladas y event-driven con enrutamiento basado en reglas.

  • CQRS

    Patrón que separa las operaciones de lectura y escritura en modelos distintos, optimizando cada uno independientemente para rendimiento y escalabilidad.

  • Patrón Saga

    Patrón para gestionar transacciones distribuidas en microservicios mediante una secuencia de transacciones locales con acciones de compensación para manejar fallos.

  • Microservicios

    Estilo arquitectónico que estructura una aplicación como colección de servicios pequeños, independientes y desplegables, cada uno con su propia lógica de negocio y datos.

  • Event Sourcing

    Patrón donde el estado de la aplicación se deriva de una secuencia inmutable de eventos, proporcionando auditoría completa y la capacidad de reconstruir el estado en cualquier punto del tiempo.

  • Backend for Frontend

    Patrón arquitectónico donde cada tipo de cliente tiene su propio backend dedicado que adapta las APIs de microservicios a las necesidades específicas de ese cliente.

  • AWS Step Functions

    Servicio de orquestación serverless de AWS que coordina múltiples servicios en workflows visuales usando Amazon States Language (ASL), con manejo de errores, reintentos y ejecución paralela integrados.

  • AWS SQS

    Servicio de colas de mensajes completamente administrado de AWS que desacopla componentes de aplicaciones distribuidas, garantizando la entrega de mensajes con escalabilidad ilimitada.

  • AWS SNS

    Servicio de mensajería pub/sub de AWS que distribuye mensajes a múltiples suscriptores simultáneamente, habilitando patrones de fan-out y notificaciones a escala.

  • AWS Lambda

    Servicio de cómputo serverless de AWS que ejecuta código en respuesta a eventos sin necesidad de aprovisionar ni administrar servidores, escalando automáticamente desde cero hasta miles de ejecuciones concurrentes.

  • AWS DynamoDB

    Base de datos NoSQL serverless de AWS con latencia de milisegundos a cualquier escala, ideal para aplicaciones que requieren alto rendimiento y escalabilidad automática.

  • Orquestación de IA

    Patrones y frameworks para coordinar múltiples modelos de IA, herramientas y fuentes de datos en pipelines de producción, gestionando el flujo entre componentes, la memoria y la recuperación de errores.

Conceptos