¿Qué es la arquitectura impulsada por eventos?
El modelo de integración de la arquitectura impulsada por eventos detecta y actúa sobre “eventos” importantes en tiempo real.
default
{}
default
{}
primary
default
{}
secondary
Definición de arquitectura impulsada por eventos y por qué es importante
La arquitectura impulsada por eventos es un enfoque de diseño de software que habilita a las organizaciones para reaccionar de manera instantánea ante cualquier cambio significativo de estado. Imagine si una empresa pudiera reaccionar en el momento en que sucede algo importante, como cuando un cliente realiza una compra on-line, un sensor detecta una falla inminente, el precio de una acción cae o se activa una alerta de seguridad. Estos cambios —llamados eventos— ocurren todo el tiempo, en todas las organizaciones y en todas las industrias. El éxito depende de la rapidez de la empresa para responder a los eventos.
Aquí es donde entra en juego la arquitectura impulsada por eventos (EDA). En lugar de esperar actualizaciones programadas o depender de sistemas rígidos y estrechamente conectados, la arquitectura impulsada por eventos permite que las aplicaciones se comuniquen de manera asíncrona por medio de componentes con acoplamiento flexible. Esto significa que cada parte del sistema puede actuar de manera independiente —sin conocer el funcionamiento interno de las demás—, lo cual facilita escalar, adaptarse e innovar.
Como resultado, los sistemas modernos que usan arquitectura impulsada por eventos habilitan que las empresas ofrezcan experiencias más rápidas y personalizadas, automaticen operaciones, y se mantengan ágiles incluso a medida que crecen las demandas y los volúmenes de datos. Adoptando una arquitectura impulsada por eventos, las organizaciones pasan de ser reactivas a proactivas, obteniendo la velocidad, flexibilidad y resiliencia necesarias para prosperar en un mundo digital dinámico.
¿Qué es un evento?
Un evento es cualquier acción o cambio de estado que impacta en el negocio —por ejemplo, cuando un cliente pasa una tarjeta de crédito, un pasajero se registra para un vuelo, un usuario restablece una contraseña o un almacén actualiza su inventario—. Piénselo así: un evento es un pequeño mensaje que dice “algo acaba de suceder”, permitiendo que otras partes del sistema reaccionen de inmediato.
Las empresas pasan a ser impulsadas por eventos cuando pueden captar y reaccionar a los eventos a medida que ocurren, lo cual sucede todo el tiempo. Algunos ejemplos de eventos comunes incluyen:
- Un pago falla o tiene éxito
- Un usuario inicia o cierra sesión
- El inventario cae por debajo de un umbral
- Un envío sale del almacén o llega a su destino
- Una violación de seguridad activa una alerta
- Un programa de fidelidad actualiza los saldos de puntos
- Un equipo de soporte crea un ticket
- Un cliente actualiza su dirección de envío
- Un nuevo usuario crea una cuenta
- Un comprador envía una reseña de producto
- Un suscriptor renueva o cancela una suscripción
Componentes principales de la arquitectura impulsada por eventos
Para mantener su estructura consistente, los esquemas de eventos definen la estructura y el formato del evento, incluyendo qué campos contiene, tipos de datos y reglas para su interpretación.
En una arquitectura impulsada por eventos, las aplicaciones actúan como productoras de eventos —que producen o capturan eventos— o consumidoras de eventos —que procesan y actúan a partir de eventos—. Las productoras transmiten eventos a las consumidoras en tiempo real a través de un agente de eventos, que es un middleware orientado a mensajes. Las consumidoras pueden procesar el evento y disparar otras acciones, flujos de trabajo o eventos propios. Este diseño habilita una capacidad de respuesta en tiempo real y decisiones más inteligentes a medida que llegan los datos.
El agente de eventos gestiona canales de eventos que conectan a las productoras con las consumidoras, garantiza una entrega confiable y, a menudo, brinda características tales como filtrado, persistencia y reproducción. Desacoplando productoras y consumidoras, el agente de eventos hace que el sistema sea más resiliente y escalable.
En una arquitectura muy simple donde hay un sola productora y una sola consumidora en comunicación directa entre sí, los agentes pueden ser opcionales. Sin embargo, en la mayoría de las empresas, múltiples fuentes envían eventos a múltiples consumidoras, por lo cual se necesita un agente, o incluso una red de agentes —también conocida como “event mesh”—. Cuando se utiliza un agente de eventos o un event mesh, se crea un “acoplamiento flexible” de aplicaciones.
Comunicación sincrónica vs. asincrónica
Con comunicación sincrónica en una arquitectura impulsada por eventos, la productora de eventos espera a que el receptor procese y responda antes de continuar. Un ejemplo es cuando un cliente web envía una solicitud HTTP y espera la respuesta del servidor. La comunicación sincrónica suele estar estrechamente acoplada, es más lenta bajo cargas pesadas y “bloquea” a una productora para que no ejecute su siguiente tarea hasta que reciba una respuesta de la consumidora.
Con comunicación asincrónica en una arquitectura impulsada por eventos, la productora no espera una respuesta inmediata; puede continuar procesando mientras la consumidora del evento maneja el mensaje más tarde. Un ejemplo es cuando un sistema publica un evento a un agente de eventos y las consumidoras lo procesan de manera independiente. La comunicación asincrónica no bloquea, tiene acoplamiento flexible y es escalable, lo que la hace mejor para sistemas en tiempo real y distribuidos.
Modelos impulsados por solicitudes vs. modelos impulsados por eventos en la arquitectura impulsada por eventos
En un modelo impulsado por solicitudes, la interacción comienza con una solicitud de una consumidora de eventos a un servidor y el servidor responde. Este modelo se basa en la extracción —lo que significa que un usuario solicita activamente datos o servicios al servidor cuando los necesita, en lugar de recibir actualizaciones automáticas— y puede ser sincrónico o asincrónico. Los modelos impulsados por solicitudes son comunes en las aplicaciones web tradicionales y en las API.
En un modelo impulsado por eventos, la interacción comienza con un evento —un cambio de estado o acción que desencadena un procesamiento— y los componentes reaccionan automáticamente cuando ocurren eventos, por ejemplo, publicar/suscribirse. Este modelo se caracteriza por estar basado en empujes —lo que significa que el sistema envía automáticamente (“empuja”) eventos o actualizaciones a los usuarios tan pronto como ocurren, sin esperar a que la consumidora los solicite—. Los modelos orientados a eventos son asincrónicos, desacoplados e ideales para capacidades de respuesta en tiempo real.
Piense en las diferencias clave entre los modelos de esta manera: en los modelos impulsados por solicitudes, los usuarios piden los datos cuando los necesitan; los modelos impulsados por eventos reaccionan automáticamente cuando ocurre algo.
Patrones comunes de arquitectura impulsada por eventos
Los patrones de arquitectura impulsada por eventos son enfoques de diseño comunes que definen cómo un sistema impulsado por eventos captura, procesa y consume eventos. Los patrones brindan estrategias reutilizables para manejar la comunicación y los cambios de estado de manera escalable y desacoplada. Las organizaciones aplican patrones de arquitectura impulsada por eventos durante el diseño e implementación de sistemas para resolver desafíos comunes. Estos incluyen la distribución de eventos, consistencia de los datos y escalabilidad en entornos asincrónicos y de acoplamiento flexible.
Existen cuatro patrones principales para transmitir eventos en la arquitectura impulsada por eventos:
- Publicar/suscribir (también conocido como “pub/sub”): con el pub/sub, las apps consumidoras de eventos se suscriben a mensajes y canales publicados por las productoras de eventos. Cuando se publica un evento, se envía directamente a todas las suscriptoras usando un agente de eventos. Para evitar la duplicación, no es posible reproducir ni acceder a los datos una vez consumidos porque el agente los elimina.
- Transmisión de eventos: con la transmisión de eventos, las productoras de datos envían flujos de eventos enteros a un agente. Las consumidoras se suscriben al flujo y pueden leerlo desde cualquier parte, usando solo los eventos que les resultan relevantes. Con la transmisión de eventos, los eventos son retenidos por el agente incluso después de haber sido consumidos.
- Segregación de responsabilidad de comando y consulta (CQRS): con el patrón CQRS, la capa de diseño y arquitectura de la aplicación separa las operaciones de lectura y escritura en diferentes modelos. Los comandos actualizan el estado mientras que las consultas lo leen. En la arquitectura impulsada por eventos, el patrón CQRS a menudo trabaja con eventos para propagar cambios de manera asincrónica, mejorando la escalabilidad y rendimiento de sistemas complejos.
- Sourcing de eventos: con sourcing de eventos, el sistema registra cada cambio de estado como un evento en un registro de anexos en lugar de almacenar únicamente el estado actual de una entidad. El estado actual se puede reconstruir reproduciendo estos eventos. Esto brinda un registro de auditoría completo y da soporte a escenarios de recuperación y de viaje en el tiempo.
Estilos de procesamiento de eventos
Los estilos de procesamiento de eventos describen cómo el sistema detecta, interpreta y actúa sobre los eventos. Definen la complejidad de la lógica, el tiempo, y las relaciones entre eventos que el sistema comprende. Hay tres enfoques diferentes para procesar los eventos una vez que llegan a una app consumidora: procesamiento de eventos simple, complejo, y de flujos de eventos.
1. Procesamiento de eventos simple: las consumidoras procesan cada evento a medida que lo reciben. Ejemplos:
- Un cliente realiza un pedido, lo que hace que el sistema envíe un correo electrónico de confirmación y actualice el inventario.
- Una solicitud de restablecimiento de contraseña genera un correo electrónico inmediato con un enlace seguro.
- Un pago exitoso resulta en la generación de un recibo que se envía al cliente.
- El inicio de sesión de un usuario se registra instantáneamente para rastrear la seguridad.
2. Procesamiento de eventos complejo: las consumidoras procesan una serie de eventos para detectar patrones y realizar acciones basadas en el resultado. Ejemplos:
- Varias transacciones de alto valor en rápida sucesión generan una alerta de fraude.
- El aumento de la temperatura y una mayor vibración indican una falla inminente del equipamiento.
- Los intentos de inicio de sesión desde diferentes países en cuestión de minutos activan una alerta de seguridad.
- El abandono repetido del carrito por parte del mismo usuario genera una oferta de descuento personalizada.
3. Procesamiento de flujo de eventos: las consumidoras procesan y actúan a partir de un flujo constante de datos (datos en movimiento) en tiempo real usando una plataforma de transmisión de datos. Ejemplos:
- Las fluctuaciones en el precio de las acciones impulsan la ejecución instantánea de operaciones según reglas predefinidas.
- Un aumento de las menciones en redes sociales actualiza los dashboards de opinión en tiempo real.
- La telemetría de los vehículos conectados ajusta dinámicamente los semáforos.
- Los datos de clics en un sitio de e-commerce impulsan recomendaciones de productos en tiempo real.
Las empresas eligen su estilo de procesamiento de eventos en tiempo real en base a sus necesidades y casos de uso individuales.
Cómo funciona una arquitectura impulsada por eventos
Una arquitectura impulsada por eventos es un modelo de integración creado para publicar, captar, procesar y responder en tiempo real a eventos entre todos los sistemas distribuidos. Cuando se produce un evento en una aplicación, automáticamente se envía un mensaje a todas las demás aplicaciones que deben conocerlo, para que a su vez puedan actuar.
A continuación se muestra cómo funciona una arquitectura impulsada por eventos, paso a paso:
- Ocurre un evento: sucede un cambio significativo en el estado, tal como cuando un cliente realiza un pedido, un sensor detecta un aumento de temperatura o falla un pago.
- La productora emite el evento: la aplicación donde ocurrió el evento actúa como productora y publica el evento a un agente de eventos.
- El agente enruta el evento: el agente actúa como el intermediario para gestionar los canales de eventos y entregarlo a todas las consumidoras interesadas, lo que ayuda a garantizar una comunicación confiable, escalable y desacoplada.
- Las consumidoras reaccionan al evento: las aplicaciones o servicios que se suscribieron al canal de eventos procesan el evento y toman la acción apropiada, tal como actualizar el inventario, enviar un correo electrónico de confirmación o activar una alerta.
Las arquitecturas basadas en eventos son asincrónicas y están desacopladas —es decir que las aplicaciones no necesitan conocerse entre sí para compartir información y completar tareas en tiempo real—. La información, o los mensajes, sobre el evento pueden fluir de manera libre y automática entre las aplicaciones. Como resultado, el modelo de arquitectura impulsada por eventos es mucho más rápido y resistente que los modelos tradicionales impulsados por solicitudes o respuestas, donde una aplicación debe solicitar la información específica que necesita de otra y esperar una respuesta antes de pasar a la siguiente tarea. También debido a su naturaleza desacoplada, la arquitectura impulsada por eventos es ampliamente considerada como una mejor práctica para la comunicación de microservicios.
Casos de uso y ejemplos reales
Una arquitectura impulsada por eventos potencia experiencias digitales modernas en sectores que van desde banca y comercio minorista hasta fabricación y logística. Habilitando automatización impulsada por IA, inteligencia de eventos y capacidad de respuesta en tiempo real, la arquitectura impulsada por eventos ayuda a las organizaciones a modernizar la TI, desacoplar los sistemas heredados y operar de manera fluida en entornos multinube.
Los siguientes ejemplos muestran cómo funciona la arquitectura impulsada por eventos en la práctica.
Industria gastronómica
- Un estudiante universitario pide una pizza a través de una aplicación de entrega de comida. La aplicación captura su información básica —nombre, dirección, información de pago y pedido— y publica el evento como "pedido de pizza".
- La pizzería se suscribe al evento, cumple con el pedido, y publica su propio evento como “pedido listo” de nuevo en el servicio de entrega de comida.
- Luego, el servicio asigna un conductor para la entrega, programa una hora de llegada y le avisa al cliente que su pizza está en camino.
E-commerce
- Una compradora on-line ingresa los detalles de su tarjeta de crédito en un sitio de e-commerce, que publica el evento como “pago enviado”.
- El sistema de pago se suscribe al evento, procesa el pago y emite su propio evento como "pago procesado" indicando éxito o falla —y lo enruta de vuelta a la IU del sitio web—.
- La IU muestra el estado de pago de la clienta y dispara los pasos siguientes.
Algunos otros ejemplos de una arquitectura impulsada por eventos incluyen:
Telemetría IoT
- Una fábrica inteligente transmite datos de sensores para detectar picos de temperatura y prevenir fallas en el equipamiento.
- Unos vehículos conectados envían telemetría para optimizar el flujo de tráfico de manera dinámica.
- Unos dispositivos domésticos inteligentes publican eventos de consumo de energía para activar recomendaciones de ahorro de costos.
Analíticas e inteligencia de eventos
- Un minorista analiza datos de clics en tiempo real para personalizar las recomendaciones de productos.
- Un banco monitorea los patrones de transacciones para detectar fraudes antes de que ocurran.
- Una empresa de logística usa datos en tiempo real para proyectar retrasos en las entregas y redirigir los envíos.
Automatización
- Un sistema de RR. HH. asigna automáticamente el acceso a software para un nuevo empleado, incluyendo asignar licencias y permisos.
- Un sistema de salud activa alertas automáticas cuando los signos vitales de un paciente superan umbrales críticos.
- Una plataforma en la nube escala los recursos dinámicamente según los eventos de carga de trabajo.
Transacciones financieras
- Un portal de pago publica un evento de “pago enviado”, lo cual desencadena verificaciones de fraude antes de la aprobación.
- Una plataforma de negociación ejecuta órdenes de compra/venta al instante a medida que los precios de las acciones fluctúan.
- Un banco registra los depósitos y actualiza los saldos de las cuentas en tiempo real.
Cadena de suministro
- Un almacén actualiza los niveles de inventario y automáticamente genera órdenes de reposición.
- Un servicio de entrega redirige a los conductores en tiempo real según el tráfico y los eventos climáticos.
- Un fabricante ajusta los horarios de producción según las señales de demanda en tiempo real.
Modernización de TI y desacoplamiento de sistemas heredados
- Una empresa descarga trabajo de su mainframe publicando eventos de negocio en servicios modernos en la nube para funciones clave.
- Una organización expone interfaces de eventos en tiempo real alrededor de un ERP heredado para que las nuevas aplicaciones puedan reaccionar al instante sin tener que modificar el backend.
- Una empresa refleja eventos de un CRM antiguo en una plataforma SaaS moderna para mantener ambos sistemas sincronizados durante una migración gradual.
Notificaciones
- Un proveedor de servicios públicos notifica a los usuarios en el momento en que se detecta un corte de energía en su zona y les informa sobre el progreso del equipo de restauración.
- Una aplicación de viajes envía una alerta en tiempo real a los pasajeros cuando cambia la asignación de su puerta de embarque, asegurando que puedan ajustar sus planes de inmediato.
- Un servicio de streaming envía recomendaciones personalizadas después de que alguien termina de ver un programa.
- Un sistema de seguridad envía alertas cuando se detecta actividad de inicio de sesión sospechosa.
Los casos de uso generales de la arquitectura impulsada por eventos incluyen:
- Un comprador on-line hace clic en un producto y el sistema responde generando recomendaciones de productos basadas en artículos similares.
- Un minorista examina transacciones globales en busca de fraude y señala cualquier compra sospechosa a la empresa de la tarjeta de crédito.
- La interacción en tiempo real con el cliente usa datos de comportamiento de streaming del usuario para activar ofertas personalizadas o precios dinámicos durante una sesión de compras.
- El monitor de salud publica los signos vitales de los pacientes desde dispositivos conectados para alertar instantáneamente al personal clínico cuando se cruzan los umbrales.
- Las operaciones de ciudades inteligentes gestionan los semáforos y los horarios del transporte público basándose en el tráfico y los eventos meteorológicos en tiempo real.
- La detección de amenazas de ciberseguridad identifica y responde en tiempo real a actividades sospechosas en la red o intentos de acceso no autorizados.
- La optimización de recursos en la nube escala automáticamente los recursos de cómputo en entornos multinube cuando se presentan picos de carga de trabajo.
Producto de SAP
Descubra la integración de eventos resiliente
Habilite el escalado independiente, el aislamiento de fallas y el tiempo de actividad continuo —incluso a medida que aumentan su tráfico y casos de uso— utilizando un mesh distribuido de agentes que desacoplan productoras y consumidoras.
Beneficios de una arquitectura impulsada por eventos
Las organizaciones pueden aplicar las ventajas de la arquitectura impulsada por eventos a sus sistemas modernos. Los principales beneficios de la arquitectura impulsada por eventos incluyen:
- Capacidad de respuesta en tiempo real y flujos de trabajo inteligentes: la arquitectura impulsada por eventos habilita que los sistemas reaccionen instantáneamente a los eventos a medida que ocurren, activando flujos de trabajo y decisiones automatizadas en tiempo real. Esto es especialmente crítico durante los momentos de máxima demanda —por ejemplo, grandes eventos de ventas o días festivos—. Las organizaciones pueden aplicar esta capacidad de respuesta a las operaciones diarias mejorando todo, desde la automatización de la cadena de suministro y la detección de fraudes hasta la personalización de la interacción con el cliente.
- Velocidad y eficiencia mediante comunicación asincrónica: las aplicaciones en una arquitectura impulsada por eventos se comunican de manera asincrónica, lo que significa que las productoras publican mensajes de eventos sin esperar a que las consumidoras los reciban. Este enfoque que no bloquea mejora el rendimiento, reduce la latencia y permite que los sistemas procesen volúmenes masivos de eventos sin cuellos de botella.
- Flexibilidad y escalabilidad a por medio del desacoplamiento y el acoplamiento flexible: los componentes en una arquitectura impulsada por eventos están desacoplados o acoplados de manera flexible, por lo que operan de forma independiente sin depender de la disponibilidad o la lógica interna de los demás. Esto facilita la actualización, prueba e implementación de servicios sin disrumpir el sistema completo. Desacoplar también facilita agregar productoras y consumidoras adicionales según sea necesario, lo que permite una escalabilidad fluida a medida que crecen las necesidades del negocio.
- Resiliencia y aislamiento de fallas: con servicios desacoplados, las fallas en un componente no se propagan por todo el sistema. Cada servicio puede fallar de manera independiente, lo que hace que la arquitectura sea más duradera y tolerante a fallos que los modelos tradicionales estrechamente acoplados.
- Integración preparada para el futuro: el acoplamiento flexible y el diseño asincrónico hacen que arquitectura impulsada por eventos sea ideal para modernizar TI, desvincular sistemas heredados y operar en múltiples nubes. Las organizaciones obtienen la flexibilidad de integrar nuevas tecnologías —tales como la automatización impulsada por IA y la inteligencia de eventos— sin tener que reescribir los sistemas centrales.
Desafíos, limitaciones y mejores prácticas
Si bien las arquitecturas impulsadas por eventos ofrecen ventajas poderosas, también introducen nuevos desafíos de diseño y operación que las organizaciones deben planificar. Al implementar una arquitectura impulsada por eventos, tenga en cuenta los siguientes desafíos, limitaciones y mejores prácticas para garantizar sistemas orientados escalables, resilientes y bien gobernados.
Desafíos
- Complejidad de los sistemas distribuidos: gestionar una red de agentes de eventos en múltiples entornos introduce complejidad arquitectónica. Diseñar flujos de eventos, garantizar la coherencia del esquema y manejar la comunicación asincrónica requieren planificación y expertise avanzados. Sin controles de diseño adecuados, las organizaciones pueden experimentar caos en los eventos a medida que aumentan los volúmenes, productoras y consumidoras.
- Gobernanza y compliance: con eventos que fluyen a través de entornos híbridos y multinube, hacer cumplir las políticas de gobernanza —tales como privacidad de datos, seguridad y compliance regulatorio— se vuelve un desafío. Las organizaciones necesitan marcos de gobernanza sólidos para prevenir filtraciones de datos y accesos no autorizados, y para mantener el control sobre entornos de eventos que se expanden rápidamente.
- Depuración y observabilidad: solucionar problemas en un sistema asincrónico y con acoplamiento flexible es más complejo que en las arquitecturas tradicionales. Identificar la causa de las fallas o retrasos requiere capacidades avanzadas de monitoreo, rastreo y reproducción de eventos. Esto es especialmente cierto cuando los equipos solucionan problemas que surgen de cadenas de eventos complejas o resuelven síntomas de caos de eventos.
Cómo encaja el event mesh
Un event mesh es una capacidad arquitectónica que conecta múltiples agentes de eventos a través de diferentes hiperescaladores y en entornos privados, híbridos y multinube. El event mesh ofrece un conjunto completo de servicios avanzados de eventos, incluyendo transmisión y gestión de eventos, monitoreo, enrutamiento dinámico de mensajes y filtrado de alta precisión. Conectando agentes de eventos en un mesh distribuido, las organizaciones pueden:
- Reducir la complejidad mediante gestión y enrutamiento centralizado de eventos.
- Dar soporte a la gobernanza con catálogos de eventos, cumplimiento de esquemas y monitoreo.
- Mejorar la observabilidad mediante rastreo de eventos, reproducción y analíticas avanzadas.
- Habilitar escalabilidad y resiliencia en entornos híbridos y multinube.
Siendo la columna vertebral de los sistemas modernos, el event mesh es una capa fundamental para arquitecturas escalables en tiempo real impulsadas por eventos. Ayuda a garantizar la capacidad de respuesta en tiempo real mientras simplifica la integración, reduce el caos de eventos y fortalece las capacidades de resolución de problemas en entornos distribuidos.
Limitaciones de la arquitectura impulsada por eventos
- Sobrecarga operativa: los sistemas impulsados por eventos requieren herramientas especializadas de gestión de eventos, validación de esquemas y monitoreo, lo que puede aumentar la complejidad operativa.
- Requisitos de habilidades: implementar y mantener event mesh y patrones de arquitectura impulsada por eventos exige expertise en sistemas distribuidos, agentes de eventos y plataformas de integración.
- Riesgos de latencia: aunque la arquitectura impulsada por eventos está diseñada para una capacidad de respuesta en tiempo real, un enrutamiento de eventos mal configurado o agentes sobrecargados pueden introducir latencia.
Mejores prácticas de una arquitectura impulsada por eventos
- Estandarizar los esquemas y contratos de eventos: use registros de esquemas y haga cumplir la validación para mantener la coherencia entre productoras y consumidoras.
- Implementar una gobernanza sólida: defina políticas claras de propiedad de eventos, seguridad y compliance. Aproveche las herramientas de auditoría y control de acceso.
- Mejorar la observabilidad: implemente soluciones de monitoreo y rastreo para seguir los flujos de eventos, detectar anomalías y simplificar la depuración.
- Diseñar con escalabilidad y resiliencia: use funciones de event mesh tales como el enrutamiento dinámico y el filtrado de alta precisión para optimizar el rendimiento y la tolerancia a fallos.
- Automatizar con IA e inteligencia de eventos: incorpore analíticas y automatización impulsadas por IA para pronosticar problemas, optimizar el enrutamiento y mejorar la toma de decisiones en tiempo real.
Características de la arquitectura impulsada por eventos
En esencia, la arquitectura impulsada por eventos se basa en varias características definitorias que la hacen ideal para entornos distribuidos, híbridos y multinube.
- Comunicación asincrónica: una característica fundamental de la arquitectura impulsada por eventos. En lugar de esperar una respuesta directa como en los modelos tradicionales impulsados por solicitudes, las aplicaciones publican eventos y continúan operando sin demora. Este estilo que no bloquea habilita interacciones en tiempo real a través de sistemas distribuidos y mejora la capacidad de respuesta incluso bajo una carga pesada.
- Acoplamiento flexible: las aplicaciones no necesitan conocer la disponibilidad, estructura de la API ni lógica interna de las demás; simplemente se comunican a través de eventos enrutados por un agente o un event mesh. Garantizando que las productoras y consumidoras de eventos operen de manera independiente, los equipos pueden agregar, actualizar o reemplazar servicios sin disrumpir el sistema en general, lo que aumenta la agilidad y la tolerancia a fallos.
- Escalado independiente: debido a que los componentes están desacoplados, los servicios individuales pueden escalar de forma ascendente o descendente según la demanda —sin requerir cambios en las aplicaciones de origen o de destino—. SAP destaca esto como un beneficio fundamental de la integración impulsada por eventos, especialmente en entornos híbridos y multinube donde las cargas máximas y los trabajos distribuidos deben gestionarse de manera eficiente.
En conjunto, estas características hacen que la arquitectura impulsada por eventos sea un enfoque poderoso para construir sistemas en tiempo real, resilientes, adaptables y preparados para el crecimiento —ya sea que esté dando soporte a microservicios, integrando entornos en la nube o habilitando aplicaciones de procesos de negocio impulsadas por eventos—.
Producto de SAP
Conviértase en una organización impulsada por eventos a gran escala
Habilite conectividad instantánea y en tiempo real entre nubes con event mesh a escala empresarial.
Preguntas frecuentes
La principal diferencia entre las arquitecturas impulsadas por eventos y las impulsadas por solicitudes es cómo los sistemas se comunican y reaccionan a los cambios. En un modelo impulsado por solicitudes, la interacción comienza cuando un usuario solicita datos o una acción a un servidor, y el servidor responde. Este modelo es típicamente sincrónico —lo que significa que quien realiza la solicitud espera (se bloquea) hasta que llega la respuesta— y es basado en extracción, lo que significa que las aplicaciones solo reciben actualizaciones cuando las solicitan.
En un modelo impulsado por eventos, la interacción comienza cuando ocurre un evento —un cambio de estado significativo en un sistema de negocio— y las aplicaciones reaccionan automáticamente. Los sistemas impulsados por eventos son asincrónicos, por lo que las productoras publican eventos sin esperar a que una consumidora responda. Este modelo impulsado en extracción y de acoplamiento flexible permite que las aplicaciones operen de manera independiente y procesen eventos en tiempo real a través de entornos distribuidos, híbridos y multinube.
Los componentes principales de la arquitectura impulsada por eventos son las productoras, consumidoras, los agentes de eventos y canales de eventos. Juntos, estos componentes crean un flujo de eventos asincrónico con acoplamiento flexible que habilita interacciones en tiempo real y escalables a través de entornos distribuidos, híbridos y multinube:
- Productoras: aplicaciones que generan o capturan eventos —tales como actualizaciones de pedidos, pagos y lecturas de sensores— y los publican en el sistema impulsado por eventos
- Consumidoras: se suscriben, procesan y reaccionan a eventos activando flujos de trabajo, actualizando datos, enviando notificaciones o iniciando procesos posteriores
- Agentes de eventos: middleware de mensajería que enruta eventos desde las productoras hasta las consumidoras, brindando capacidades como entrega confiable, filtrado, enrutamiento dinámico, persistencia y reproducción
- Canales de eventos: vías que gestiona el agente de eventos y que conectan a las productoras y consumidoras: las productoras publican eventos en un canal y las consumidoras se suscriben a los canales relevantes
Los patrones de una arquitectura impulsada por eventos son enfoques de diseño reutilizables que definen cómo se capturan, enrutan, almacenan y consumen los eventos en un sistema impulsado por eventos. Los principales patrones de arquitecturas impulsadas por eventos son:
- Publicar/suscribirse (pub/sub): las productoras publican eventos en un canal, y múltiples consumidoras se suscriben y reaccionan automáticamente.
- Transmisión de eventos: las productoras publican flujos continuos de eventos en un agente y las consumidoras pueden leer, reproducir o procesar esos eventos en cualquier momento del flujo.
- Segregación de responsabilidad de consulta y comando (CQRS): las operaciones de lectura y escritura se separan en diferentes modelos para propagar actualizaciones de manera asincrónica.
- Sourcing de eventos: los sistemas almacenan cada cambio de estado como un evento inmutable en un registro de anexos y luego reconstruyen el estado actual reproduciendo los eventos.
Los principales beneficios de usar una arquitectura impulsada por eventos incluyen:
- Acoplamiento flexible: las aplicaciones operan de manera independiente sin conocer los detalles internos de las demás, lo que habilita actualizaciones, integraciones y extensiones más fáciles.
- Escalabilidad: se pueden agregar nuevas productoras y consumidoras de manera fluida, y las cargas de trabajo se escalan en entornos híbridos y multinube.
- Resiliencia: los servicios desacoplados aíslan las fallas, de modo que un componente puede fallar sin afectar todo el sistema.
- Velocidad y capacidad de respuesta en tiempo real: la comunicación asincrónica y que no bloquea habilita que los sistemas reaccionen instantáneamente a los eventos de negocio y gestionen altos volúmenes con baja latencia.
Producto de SAP
Explore SAP Integration Suite
Acelere la innovación con integración basada en eventos, mesh de eventos, API y procesos en tiempo real.