¿Qué es la arquitectura basada en eventos?

Un hombre de negocios sentado en un banco fuera del edificio de oficinas usando una computadora portátil

¿Qué es la arquitectura basada en eventos?

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 ocurra 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 lagos de datos (como en las arquitecturas orientadas a servicios), hacia un enfoque dinámico que rastrea los datos a medida que atraviesan un arquitectura. Los datos siguen siendo valiosos en un sistema basado en eventos, pero los EDA enfatizan la reacción oportuna a los eventos, reconociendo que el valor de un evento puede disminuir a medida que pasa el tiempo.

En una arquitectura basada en eventos, los productores de eventos (como microservicios, APIs y IoT dispositivos) 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 lanza un nuevo serial original, varios servicios EDA esperan en espera la notificación de lanzamiento, lo que desencadena una cascada de actualizaciones para informar a los usuarios.

Una de las ventajas clave de una arquitectura basada en eventos es la relación desacoplada entre los componentes front-end y back-end, lo que permite que los sistemas compartan información sin 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 asincrónica.

Las empresas modernas y con visión de futuro tienen amplias huellas digitales, 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. Como tales, los EDA ayudan a las empresas a automatizar una variedad de procesos organizacionales, desde la optimización de las cadenas de suministro hasta la identificación proactiva de problemas de calidad, y, en última instancia, a mejorar tanto sus ingresos como sus resultados.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

¿Qué es un evento?

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 fundamentales que registran cualquier ocurrencia o cambio en el sistema o entorno. Ejemplos de tales cambios incluyen un usuario que agrega un artículo a su carrito de compras en un sitio de comercio electrónico o solicita restablecer una contraseña o un cambio de estado de la aplicación. Es un término que se refiere esencialmente a cada punto de datos en el sistema. Y un "flujo" (también llamado flujo de datos o transmisión de datos) es la entrega continua de esos eventos.

Cada evento generalmente incluye una clave que identifica el evento o la entidad a la que pertenece, un valor que contiene los datos reales del evento, una marca de tiempo que indica cuándo ocurrió o se registró el evento y, a veces, metadatos sobre la fuente de datos, la versión del esquema u otro atributo. Pueden llevar 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 transmisiones, los eventos pueden someter a algunos procesos diferentes dentro de una transmisión. Las "agregaciones" realizan cálculos de datos, como medias, sumas y desviación estándar. La "ingestión" agrega datos de transmisión a las bases de datos. El procesamiento de analytics emplea patrones en la transmisión de datos para predecir eventos futuros, y el procesamiento de enriquecimiento combina puntos de datos con otras fuentes para brindar contexto y crear significado.

Los eventos suelen estar vinculados a las operaciones comerciales o a los procesos de navegación del usuario y, por lo general, desencadenan otra acción, proceso o serie de eventos. Tomemos como ejemplo la banca en línea. 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 de las partes (o a ambas) y, si es necesario, se despliegan protocolos de seguridad y prevención de fraude.

Desarrollo de aplicaciones

Entérese: desarrollo de aplicaciones empresariales en la nube

En este video, el Dr. Peter Haumer analiza cómo es el desarrollo de aplicaciones empresariales modernas en la nube híbrida y hace una demostración de diferentes componentes y prácticas, incluidos IBM Z Open Editor, IBM Wazi y Zowe.

Otros componentes clave de EDA

Además de los eventos, los EDA se basan en tres componentes principales para mover los datos de eventos a través de la arquitectura.

  • Productores (o editores)de eventos: los productores son las fuentes de eventos; generan eventos y los envían al resto del sistema. Un productor podría ser una interfaz de usuario, un sensor, un servicio o cualquier otro sistema capaz de detectar o producir un cambio de estado de interés para otras partes del sistema. Aunque los productores son responsables de crear eventos, no tienen funcionalidad de procesamiento de eventos.
  • Consumidores de eventos (o suscriptores): los consumidores manejan las tareas de procesamiento de eventos en un EDA. Escuchan los canales de eventos y reaccionan cuando se publica un evento de interés. La reacción puede tomar muchas formas, incluida la actualización de una base de datos, la activación de un proceso posterior o simplemente el registro de información.
  • Enrutadores de eventos (u orquestadores de eventos): los enrutadores u orquestadores son los intermediarios que desacoplan a los productores de eventos de front-end de los consumidores de eventos de backend; sirven como conductos a través de los cuales se entregan los eventos, asegurando la transmisión sin requerir una conexión directa entre las entidades. Los enrutadores pueden basarse en componentes convencionales (middleware orientado a mensajes,como un SaaS, por ejemplo) y ser útiles en una variedad de sistemas de mensajería (colas demensajes, modelos de publicación/suscripción, event streams y más).

¿Cómo se mueven los eventos a través de arquitecturas basadas en eventos?

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 realiza 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 realizar otras acciones.

Luego, el productor de eventos transmite el evento, en forma de mensaje, a un agente u otro tipo de enrutador de eventos, que mantiene el orden cronológico del evento en relación con otros eventos. Un consumidor de eventos Ingesta el mensaje, en tiempo real (a medida que ocurre) o en una instancia relevante posterior, y procesa el mensaje para desencadenar otra acción, flujo de trabajo o evento propio.

En un ejemplo simple, un servicio bancario podría transmitir un evento de "depósito", que otro servicio bancario consumiría y respondería escribiendo un depósito en el extracto del cliente.

Pero las integraciones basadas en eventos también pueden desencadenar respuestas en tiempo real basadas en análisis complejos de grandes volúmenes de datos, como cuando un cliente hace clic en un producto en un sitio de comercio electrónico y el sistema genera recomendaciones instantáneas de productos basadas en las compras de otros clientes.

Modelos de arquitectura basados en eventos

La arquitectura basada en eventos maximiza el potencial de las aplicaciones nativas de la nube y habilita tecnologías de aplicaciones potentes, 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 incluye varios patrones arquitectónicos, todos los cuales pueden ser útiles para diferentes propósitos:

Modelo de publicación/suscríbase (pub/sub)

En el modelo de publicación/suscripción, definido por una dependencia de uno a muchos entre objetos y una relación asíncrona y desacoplada entre el editor (productor de eventos) y el consumidor, el editor no necesita saber sobre los suscriptores. Simplemente publica el evento en un canal de eventos compartido donde los suscriptores escuchan y reaccionan al evento de forma independiente, en tiempo real.

Normalmente, un agente de mensajes (enrutador) maneja la transmisión de mensajes de eventos entre publicadores y suscriptores. El agente recibe cada mensaje de evento, lo transforma (si es necesario), mantiene su orden en relación con otros mensajes, lo pone a disposición de los suscriptores para su consumo y luego lo elimina una vez consumido (para que no se pueda volver a consumir).

Los patrones de pub/submensajes son ideales para empresas con grandes bases de código y para transmitir información a múltiples consumidores (para sistemas de notificación y fuentes de datos en tiempo real, por ejemplo).

Transmisión de eventos

Al igual que la publicación/suscripción, la transmisión de eventos desacopla a los editores y los consumidores para permitir la comunicación asincrónica. Sin embargo, en el modelo de streaming de eventos, los consumidores de eventos no necesitan subscripciones a las secuencias; más bien, los productores publican secuencias de eventos en un registro de intermediario y los consumidores pueden entrar en cada secuencia en cualquier momento y consumir solo los eventos que desean consumir (en lugar de recibir y consumir todos los eventos publicados).

Sin embargo, a diferencia de la publicación/suscripción, los corredores de transmisión de eventos conservan los eventos incluso después de que los consumidores los hayan recibido.

Debido a que los consumidores pueden procesar 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 una cantidad de tiempo configurable (desde fracciones de segundo hasta para siempre). Los consumidores pueden acceder a la transmisión en cualquier momento para leer mensajes recientes, procesar por lotes una serie de mensajes desde la última vez que accedieron a la transmisión o hacer referencia a 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 de extracción (donde los corredores solo envían datos de los consumidores cuando los consumidores indican que están abiertos a eventos) y el modelo de inserción (donde la lógica de negocio del corredor dicta qué consumidores reciben eventos).

Los patrones de transmisión de eventos son más útiles para las aplicaciones que necesitan actualizaciones de eventos en tiempo real y acceso a eventos pasados (sistemas de detección de fraude para instituciones financieras, por ejemplo).

Patrones de procesamiento de eventos

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.

  • Procesamiento simple de eventos: donde los consumidores procesan los eventos exactamente como los reciben de los editores, lo que desencadena una acción inmediata.
  • Procesamiento de flujo de eventos (ESP): donde las plataformas de transmisión de datos Ingesta eventos y crean una pipeline para procesadores de flujo, que luego procesan y transforman el flujo.

  • Procesamiento de eventos complejos (CEP): donde los consumidores procesan una serie de eventos para identificar tendencias y patrones en los datos.

Los tres patrones de procesamiento (entre otros) se pueden utilizar tanto dentro de los patrones arquitectónicos de publicación/suscripción como de transmisión de eventos, pero ESP es (naturalmente) más común en el patrón arquitectónico de transmisión de eventos.

¿Qué empresas utilizan arquitecturas basadas en eventos?

Los 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 que procesan diferentes partes de un evento, las características de distribución 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 vayan solo a los suscriptores interesados en sus datos. Las nuevas compras van directamente a los consumidores de procesamiento de pedidos, los problemas de pedidos se enrutan directamente a los canales de atención al cliente, etc.

Casos de uso de EDA

Las arquitecturas basadas en eventos se están volviendo esenciales para mantener a las empresas actuales al ritmo del mercado y avanzar hacia el futuro. De hecho, el 26 % de las organizaciones planea adoptar EDA para satisfacer las necesidades comerciales, además de casi el 37 % de las empresas que ya lo han hecho. 1 Y se espera que la industria del software EDA duplique su tamaño (a más de USD 16.5 mil millones en ingresos) para 2027.

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 está sucediendo 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 se vuelven invaluables, ya que permiten la automatización de procesos de alto rendimiento y baja latencia y proporcionan herramientas avanzadas para una variedad de casos de uso, que incluyen:

Análisis de datos de transacciones

Utilice un EDA para obtener vistas en tiempo real de los datos transaccionales 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.

Optimización de inventarios

Utilice arquitecturas basadas en eventos para monitorear 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.

Detección de actividades sospechosas

Evalúe 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.

Insights del cliente

Comprenda mejor el comportamiento del cliente combinando la actividad en la tienda y en línea, y genere ofertas informadas y en tiempo real diseñadas para aumentar el gasto de los clientes.

Mantenimiento predictivo

Obtenga insights de datos de equipamiento y productos en tiempo real para detectar factores de riesgo y problemas de calidad con prontitud, ayudando a su Facilidad a anticipar y abordar posibles malfunctions o averías.

Adaptabilidad dinámica de precios

Detecte fluctuaciones de precios en tiempo real para los materiales que afectan los resultados de su negocio. Mantenga los costos bajos renegociando rápidamente el mejor precio disponible para maximizar los ingresos potenciales.

Beneficios de la arquitectura basada en eventos

Las arquitecturas basadas en eventos ponen en marcha 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. EDA también puede ayudar a las empresas a mantener y acelerar el crecimiento, al ofrecer:

Escalabilidad detallada

Los EDA permiten que los sistemas se amplíen a escala agregando más instancias de servicios para manejar mayores cargas de trabajo.

Mensajería asincrónica

Los EDA permiten que los componentes se comuniquen de forma asincrónica; 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), simplificando tanto la integración como la experiencia del usuario.

Mayor flexibilidad y agilidad

Los servicios se pueden agregar, eliminar o modificar de forma independiente, lo que facilita las prácticas ágiles de desarrollo y despliegue.

Desacoplamiento

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 reduce las dependencias y aumenta la resiliencia general del sistema.

Aumentar la capacidad de respuesta

EDA está inherentemente diseñado para el procesamiento y la respuesta en tiempo real, lo que permite a los equipos responder de manera más proactiva y facilitar acciones y automatizaciones más inteligentes.

Soluciones relacionadas
Desarrollo de aplicaciones impulsado por IA

watsonx.ai permite a los equipos de desarrollo de aplicaciones integrar perfectamente la IA en sus flujos de trabajo. Desde la creación de modelos hasta su despliegue, este completo kit de herramientas da soporte a todo el ciclo de vida de la IA.

Explorar watsonx.ai
IBM Z Development and Test Environment

Utilice una plataforma para el desarrollo de aplicaciones de mainframe, pruebas, demostración y entrenamiento en hardware x86.

Explorar el entorno de desarrollo Z
Soluciones de computación en la nube móvil

Descubra la plataforma de desarrollo de aplicaciones móviles de IBM para diseñar, crear prototipos y comercializar aplicaciones de manera rápida y sencilla.

Explorar la nube móvil
Dé el siguiente paso

Los servicios de consultoría de desarrollo de aplicaciones en la nube de IBM Cloud ofrecen orientación experta y soluciones innovadoras para agilizar su estrategia de nube. Colabore con los expertos en nube y desarrollo de IBM para modernizar, escalar y acelerar sus aplicaciones, y obtenga resultados transformadores para su empresa.

Conozca los servicios de desarrollo de aplicaciones Comience a crear con IBM Cloud de forma gratuita