La arquitectura basada en eventos (EDA) es un modelo de diseño de software creado en torno a la publicación, captura, procesamiento y almacenamiento de eventos.
Permite a los equipos identificar eventos del sistema (básicamente cualquier cambio o acción que se produzca dentro del sistema) y responder y reaccionar ante ellos en tiempo real (o casi en tiempo real).
La profusión de EDA en entornos nativos de la nube representa un cambio significativo de las arquitecturas computacionales tradicionales, que se centran en almacenar datos estáticos en repositorios como data lake (como en las arquitecturas orientadas a servicios), hacia un enfoque dinámico que rastrea los datos a medida que atraviesan una arquitectura. En un sistema basado en eventos, los datos siguen siendo valiosos, pero los EDA hacen hincapié en la necesidad de reaccionar de forma oportuna ante los eventos, ya que el valor de estos puede disminuir con el paso del tiempo.
En una arquitectura basada en eventos, los productores de eventos (como microservicios, API y dispositivos IoT) envían notificaciones de eventos en tiempo real a los consumidores de eventos que luego activan rutinas de procesamiento específicas. Por ejemplo, cuando Netflix estrena una nueva serie original, varios servicios de EDA están a la espera de la notificación del estreno, lo que desencadena una cascada de actualizaciones para informar a los usuarios.
Una de las principales ventajas de una arquitectura basada en eventos es la desacoplación entre los componentes front-end y back-end, lo que permite que los sistemas compartan información sin necesidad de conocerse entre sí. Los productores pueden enviar eventos sin saber qué consumidor los recibirá, y los consumidores pueden recibir eventos sin enviar solicitudes a los productores. En otras palabras, los EDA permiten que los sistemas funcionen de forma independiente y procesen eventos de forma asíncrona.
Las empresas modernas y con visión de futuro tienen una gran huella digital, y la funcionalidad en tiempo real de un sistema basado en eventos permite a las empresas mantener la preparación operativa sin inactividad y responder rápidamente a las transmisiones de eventos. En este sentido, las EDA ayudan a las empresas a automatizar una serie de procesos organizativos, desde la optimización de las cadenas de suministro hasta la identificación proactiva de problemas de calidad. En última instancia, esto se traduce en una mejora de sus ingresos y resultados.
Boletín del sector
Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
La transmisión de eventos gira en torno al flujo ilimitado, secuencial y en tiempo real de registros de datos llamados "eventos", estructuras de datos fundacionales que registran cualquier ocurrencia o cambio en el sistema o entorno. Algunos ejemplos de estos cambios son que un usuario añada un artículo a su carrito de la compra en un sitio de comercio electrónico o que solicite restablecer una contraseña o un cambio de estado de la aplicación. Es un término que se refiere esencialmente a todos los puntos de datos del sistema. Una "transmisión" (también llamada flujo de datos o datos en streaming) es la entrega continua de estos eventos.
Cada evento suele incluir una clave para identificarlo o a la entidad a la que pertenece, un valor que contiene los datos reales del evento, una marca de tiempo que indica cuándo se produjo o se registró y, en ocasiones, metadatos sobre su origen, la versión del esquema u otros atributos. Pueden contener datos de estado (el artículo comprado, su precio y una dirección de entrega, por ejemplo) o servir como identificadores (una notificación de envío).
Con la ayuda de motores especializados de procesamiento de secuencias, los eventos pueden someterse a algunos procesos diferentes dentro de una secuencia. Las "agregaciones" realizan cálculos de datos, como medias, sumas y desviación estándar. La "ingesta" añade datos de secuencias a las bases de datos. El procesamiento analítico utiliza patrones en la transmisión de datos para predecir eventos futuros, y el procesamiento de enriquecimiento combina puntos de datos con otras fuentes de datos para proporcionar contexto y crear significado.
Los eventos suelen estar vinculados a operaciones comerciales o procesos de navegación del usuario y normalmente desencadenan otra acción, proceso o serie de eventos. Tomemos como ejemplo la banca electrónica. Cuando un usuario hace clic en "transferir" para enviar dinero de una cuenta bancaria a otra, los fondos se retiran de la cuenta del remitente y se agregan a la cuenta bancaria del destinatario, se envían notificaciones por correo electrónico o SMS a una (o ambas) partes y, si es necesario, se implementan protocolos de seguridad y prevención de fraude.
Además de los eventos, las EDA se basan en tres componentes principales para mover los datos de eventos a través de la arquitectura.
En una EDA, las aplicaciones basadas en eventos actúan como productoras o consumidoras (y a veces como ambas).
Cuando una aplicación o servicio lleva a cabo una acción que otra aplicación o servicio podría querer conocer, publica un nuevo evento (un registro de esa acción o cambio) que otro servicio puede consumir y procesar para llevar a cabo otras acciones.
A continuación, el productor del evento transmite el evento en forma de mensaje a un intermediario o a otro tipo de enrutador de eventos, que mantiene el orden cronológico del evento en relación con otros eventos. Un consumidor de eventos consume el mensaje en tiempo real (a medida que se produce) o en un momento posterior relevante y lo procesa para desencadenar otra acción, flujo de trabajo o evento propio.
En un ejemplo sencillo, un servicio bancario podría transmitir el evento "depósito", que otro servicio bancario consumiría y al que respondería anotando un depósito en el extracto del cliente.
No obstante, las integraciones basadas en eventos también pueden desencadenar respuestas en tiempo real basadas en análisis complejos de grandes volúmenes de datos. Por ejemplo, cuando un cliente hace clic en un producto de un sitio de comercio electrónico, el sistema genera recomendaciones instantáneas de productos basadas en las compras de otros clientes.
La arquitectura basada en eventos maximiza el potencial de las aplicaciones nativas de la nube y permite potentes tecnologías de aplicaciones, como análisis en tiempo real y soporte de decisiones. En general, reemplazan la arquitectura tradicional de "solicitud/respuesta", en la que una aplicación debe solicitar información específica de otra aplicación y esperar una respuesta antes de pasar a la siguiente tarea.
Sin embargo, "EDA" es un término que engloba varios patrones arquitectónicos, todos ellos útiles para distintos fines:
En el modelo pub/sub, definido por una dependencia uno a muchos entre objetos y una relación desacoplada y asíncrona entre el editor (el productor del evento) y el consumidor, el editor no necesita conocer a los suscriptores. Simplemente, publica el evento en un canal de eventos compartido, donde los suscriptores lo escuchan y reaccionan de forma independiente y en tiempo real.
Normalmente, un intermediario de mensajes (enrutador) gestiona la transmisión de mensajes de eventos entre publicadores y suscriptores. El intermediario recibe cada mensaje de evento, lo transforma si es necesario, mantiene su orden relativo con respecto a otros mensajes, lo pone a disposición de los suscriptores para su consumo y, una vez consumido, lo elimina para que no pueda volver a consumirse.
Los patrones de mensajería pub/sub son ideales para empresas con grandes bases de código y para difundir información a múltiples consumidores (por ejemplo, para sistemas de notificación y fuentes de datos en tiempo real).
Al igual que pub/sub, la transmisión de eventos desacopla a los editores y consumidores para permitir la comunicación asíncrona. Sin embargo, en el modelo de transmisión de eventos, los consumidores no necesitan suscribirse a las transmisiones; más bien, los productores publican transmisiones de eventos en un registro de intermediarios y los consumidores pueden unirse a cada transmisión en cualquier momento y consumir solo los eventos que deseen (en lugar de recibir y consumir todos los eventos publicados).
Sin embargo, a diferencia de Pub/Sub, los intermediarios de transmisión de eventos conservan los eventos incluso después de que los consumidores los hayan recibido.
Dado que los consumidores pueden procesar los eventos en cualquier momento después de su publicación, los registros de transmisión de eventos son persistentes. Esto significa que se mantienen durante un periodo de tiempo configurable (desde fracciones de segundo hasta indefinidamente). Los consumidores pueden acceder a la transmisión en cualquier momento para leer los mensajes más recientes, procesar por lotes una serie de mensajes desde la última vez que accedieron a la transmisión o consultar mensajes relevantes del pasado reciente.
Las tecnologías de transmisión de eventos (como Apache Kafka, Amazon Web Services (AWS) Kinesis e IBM® Event Automation también incluyen dos modelos: el modelo pull (donde los intermediarios solo envían datos de los consumidores cuando los consumidores indican que están abiertos a eventos) y el modelo push (donde la lógica empresarial del intermediario dicta qué consumidores reciben eventos).
Los patrones de transmisión de eventos resultan más útiles en aplicaciones que necesitan tanto actualizaciones de eventos en tiempo real como acceso a eventos pasados (por ejemplo, los sistemas de detección del fraude para instituciones financieras).
Además de los dos patrones arquitectónicos EDA principales, tres patrones de diseño rigen cómo se procesan los eventos una vez que llegan al suscriptor.
Estos tres patrones de procesamiento pueden utilizarse tanto en patrones arquitectónicos de publicación/suscripción como de transmisión de eventos, pero el ESP es más común (naturalmente) en el patrón arquitectónico de transmisión de eventos.
Las EDA pueden ser útiles para empresas que operan en innumerables sectores, pero son especialmente valiosos para empresas con entornos de TI grandes y complejos.
Las empresas que intentan integrar sistemas que se ejecutan en diferentes pilas tecnológicas, por ejemplo, pueden utilizar las características de desacoplamiento de las arquitecturas basadas en eventos para mantener la independencia del sistema de datos de eventos y mejorar la interoperabilidad. Las empresas multinacionales pueden utilizar una EDA para coordinar sistemas entre cuentas y regiones, lo que facilita el escalado independiente de diferentes partes de la arquitectura. Y para las empresas que ejecutan sistemas en los que cada uno procesa diferentes partes de un evento, las características de despliegue de los EDA pueden enviar eventos a cada consumidor, sin necesidad de código nuevo, para el procesamiento paralelo en todo el sistema.
En el comercio electrónico, una arquitectura basada en eventos puede filtrar y enrutar eventos en tiempo real para asegurarse de que solo lleguen a los suscriptores interesados en sus datos. Las nuevas compras se envían directamente a los consumidores, los problemas con los pedidos se remiten directamente a los canales del servicio de atención al cliente, etc.
Las arquitecturas basadas en eventos se están volviendo esenciales para mantener a las empresas de hoy en día al ritmo del mercado y avanzar hacia el futuro. De hecho, el 26 % de las organizaciones tiene previsto adoptar EDA para satisfacer las necesidades empresariales, además de casi el 37 % de las empresas que ya lo han hecho. 1 Y se espera que el sector del software EDA se duplique en tamaño (hasta más de 16 500 millones de dólares en ingresos) para 2027.2
Miles de eventos empresariales fluyen a través de cada parte de una organización cada día, y estos eventos proporcionan una gran cantidad de información sobre lo que sucede en una empresa en cualquier momento. Sin embargo, sin la tecnología adecuada, muchas empresas no pueden procesar y utilizar estos datos para tomar decisiones informadas sobre sus clientes, productos o negocios.
Ahí es donde las plataformas EDA cobran un valor incalculable, ya que permiten automatizar procesos de alto rendimiento y baja latencia, y ofrecen herramientas avanzadas para una amplia variedad de casos de uso, entre los que se incluyen:
Utilizar una EDA para obtener vistas en tiempo real de los datos de transacción que fluyen en su empresa. Combine análisis históricos con patrones de gasto en vivo para desarrollar perfiles más detallados y detectar rápidamente oportunidades para interactuar con clientes potenciales.
Utilizar arquitecturas basadas en eventos para monitorizar los cambios en los niveles de existencias en todos los canales comerciales en tiempo real, de modo que pueda automatizar y optimizar el volumen de envíos en función de qué artículos de alta rentabilidad o los más vendidos se están agotando.
Evaluar los patrones de uso y actividad en tiempo real, junto con las tendencias históricas, para detectar nuevas anomalías y emitir alertas de actividad sospechosa tan pronto como surjan aberraciones.
Comprender mejor el comportamiento de los clientes combinando la actividad en la tienda y en línea, y generar ofertas informadas y en tiempo real diseñadas para aumentar el gasto de los clientes.
Obtener información valiosa a partir de datos en tiempo real sobre equipos y productos para detectar rápidamente factores de riesgo y problemas de calidad, lo que ayudará a su instalación a anticipar y abordar posibles fallos o averías.
Detecte en tiempo real las fluctuaciones de precios de los materiales que afectan a los resultados de su empresa. Mantenga los costes bajos al renegociar rápidamente al mejor precio disponible para maximizar los ingresos potenciales.
Las arquitecturas basadas en eventos ponen a trabajar los eventos empresariales al permitir a los usuarios detectar situaciones emergentes, actuar en tiempo real, automatizar la toma de decisiones y maximizar el potencial de ingresos. La EDA también puede ayudar a las empresas a mantener y acelerar el crecimiento, al ofrecer:
Las EDA permiten que los sistemas se escalen añadiendo más instancias de servicios para gestionar mayores cargas de trabajo.
Las EDA permiten que los componentes se comuniquen de forma asíncrona; los productores publican mensajes de eventos en su propio horario, sin esperar a que los consumidores los reciban (o incluso saber si los consumidores los recibieron), lo que simplifica tanto la integración como la experiencia del usuario.
Los servicios se pueden añadir, eliminar o modificar de forma independiente, lo que facilita las prácticas ágiles de desarrollo e implementación.
Los EDA se desacoplan en el tiempo y la sincronización, por lo que los productores y consumidores de eventos interactúan a través de eventos (en lugar de llamadas directas a la API), lo que disminuye las dependencias y aumenta la resiliencia general del sistema.
La EDA está diseñada intrínsecamente para el procesamiento y la respuesta en tiempo real, lo que permite a los equipos responder de forma más proactiva y facilita acciones y automatizaciones más inteligentes.
Un servicio totalmente gestionado y de inquilino único para desarrollar y entregar aplicaciones Java.
Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.
El desarrollo de aplicaciones en la nube significa crear una vez, iterar rápidamente e implementar en cualquier lugar.