¿Qué es un bus de eventos?

En la arquitectura basada en eventos (EDA), un bus de eventos facilita la comunicación en tiempo real sobre los datos de eventos entre editores de eventos y suscriptores de eventos.

¿Qué son los eventos?

Los eventos son cambios en el estado de un sistema. Un evento es algo que ocurre y que puede desencadenar otras cosas. Una transacción de comercio electrónico, la solicitud de información de un cliente potencial, una filtración de datos, un componente de equipo que falla, un cambio en el precio de las acciones y el clic de un cliente en una URL de un sitio web son ejemplos de eventos. Para las empresas, recibir notificaciones de los eventos lo más rápido posible es clave para impulsar la eficiencia, la productividad y la competitividad. Para lograrlo, los arquitectos de TI pueden optar por implementar una arquitectura basada en eventos.

¿Qué es la arquitectura basada en eventos?

La EDA es un patrón de diseño para software y hardware que permite a los sistemas detectar, procesar y responder rápidamente a una amplia gama de eventos. La arquitectura basada en eventos incluye lo siguiente:

  • Editores de eventos. Un editor de eventos, o productor de eventos, es un sistema que emite una notificación en cuanto se produce un evento. Los editores de eventos pueden ser interfaces de usuario que transmiten datos sobre eventos de usuarios, dispositivos del IoT que comunican cambios en la temperatura o el movimiento, API que comunican finalizaciones de pagos, bases de datos que señalan cambios en los registros y motores de flujo de trabajo que producen eventos cuando se completan tareas, flujos de trabajo o hitos.
  • Buses de eventos. Un bus de eventos es middleware que actúa como intermediario entre los editores de eventos y los consumidores. Un bus de eventos recibe mensajes de eventos en tiempo real de los editores de eventos y pone los datos a disposición de los consumidores de eventos que se han suscrito para recibir información de un canal o clase de evento determinado. (Una cola de mensajes, un agente de eventos o un stream de eventos también pueden desempeñar esta función).
  • Consumidores de eventos. También conocidos como suscriptores de eventos u oyentes de eventos, los consumidores de eventos reciben información sobre eventos, la procesan y realizan tareas o acciones basadas en ella. Las acciones de un consumidor de eventos pueden incluir la actualización de una base de datos, el envío de un correo electrónico, la emisión de una alerta, la realización de un pedido, la activación de un flujo de trabajo o la creación de un nuevo evento.

¿Cuáles son las ventajas de la EDA?

La arquitectura basada en eventos y los buses de eventos ofrecen varias ventajas para los sistemas de TI empresariales.

Con los buses de eventos como intermediarios, los sistemas de EDA permiten la mensajería asíncrona y el acoplamiento débil de aplicaciones. Los sistemas que publican eventos no necesitan saber a dónde envían la información y los consumidores de eventos no necesitan saber dónde se originan los mensajes de eventos. Esto ofrece una ventaja significativa con respecto a la arquitectura de "solicitud/respuesta", en la que una aplicación solicita información de otra y, a continuación, espera la respuesta. 

Esta mensajería asíncrona significa que los editores y los consumidores no tienen que esperar a recibir respuestas antes de actuar sobre la información o pasar a la siguiente tarea. Los productores del evento no necesitan saber de los consumidores del evento y los consumidores del evento no necesitan saber de los productores del evento. Los productores simplemente indican que algo ha sucedido y los consumidores escuchan los eventos que les importan. Este acoplamiento débil hace que el sistema sea más resiliente ante los fallos. Por lo tanto, la arquitectura basada en eventos permite que diversos componentes se escalen de forma independiente cuando sea necesario y facilita a los sistemas gestionar grandes cantidades de datos con mayor velocidad y procesamiento en tiempo real.

¿Cómo funciona un bus de eventos en la EDA?

Un bus de eventos se utiliza normalmente en un modelo de publicación-suscripción. En este enfoque de EDA, los buses de eventos reciben mensajes de los editores, traducen o transforman la información si es necesario, mantienen los mensajes organizados y ordenados, dirigen los mensajes a los suscriptores para su consumo y, a continuación, eliminan los mensajes una vez consumidos.

Así es como funciona el proceso:

  • Para recibir datos de eventos, se configuran los consumidores de eventos para que reciban información de los buses de eventos sobre un evento específico o un tipo o clase de evento.
  • Cuando el bus de eventos recibe un mensaje de un editor de eventos, dirige los datos a todos los suscriptores adecuados. Las empresas también pueden configurar buses para conservar los datos durante un periodo de tiempo, lo que permite a los consumidores obtener los datos según su propio horario.

¿Qué ventajas ofrece el uso de un bus de eventos?

Los buses de eventos permiten que los componentes de la arquitectura basada en eventos hagan o siguiente:

  • Comunicarse sin dependencias. Esto facilita la adición o modificación de componentes sin causar tiempo de inactividad ni que afecte al sistema en general.
  • Escalar horizontalmente. La arquitectura de bus de eventos permite implementar varias instancias del mismo componente simultáneamente, lo que facilita el procesamiento paralelo para mejorar el rendimiento del sistema.
  • Gestionar comunicación asíncrona. Al habilitar los mensajes de eventos en todo el sistema, los buses de eventos facilitan la comunicación asíncrona y permiten a los componentes activar acciones de forma independiente.

¿Cuáles son los casos de uso para un bus de eventos?

Se puede utilizar un bus de eventos para habilitar mensajes de eventos para una amplia gama de aplicaciones.

  • Comercio electrónico. Las plataformas de comercio electrónico dependen de los buses de eventos para comunicar eventos como "producto pedido", "pago recibido" o "paquete enviado". Estos eventos pueden llevar a los consumidores de eventos a activar acciones como crear facturas, enviar confirmaciones por correo electrónico o solicitar más inventario.
  • Microservicios. La naturaleza de acoplamiento débil de los buses de eventos y la EDA constituye la infraestructura ideal para la comunicación entre microservicios.
  • Recopilación de datos del IoT. Los buses de eventos pueden recibir grandes cantidades de datos de eventos de dispositivos y sensores del Internet de las cosas (IoT) que llevan un seguimiento de los datos medioambientales o de los movimientos del tráfico y las personas.
  • Capturar cambios de datos. Los buses de eventos pueden facilitar eventos relacionados con cambios en una base de datos, como cuando se actualiza el registro de CRM de un cliente, se registra un nuevo registro o un elemento de inventario está fuera de stock.
  • Integración. La EDA y los buses de eventos promueven la integración de diversas tecnologías a través de la comunicación asíncrona y las relaciones de acoplamiento débil entre los sistemas.
  • Procesamiento de datos en tiempo real. Los buses de eventos favorecen las bases de datos en tiempo real al informar a los consumidores sobre los eventos tan pronto como se producen.

¿Qué son los servicios de buses de eventos comunes?

Algunos de los servicios de buses de eventos más populares incluyen Java Message Service (JMS), Apache Kafka, RabbitMQ, Microsoft Azure Event Grid, Google Cloud Pub/Sub y servicios de AWS como Amazon EventBridge.

Preguntas frecuentes

Normalmente, se utiliza un bus de eventos para facilitar la comunicación en tiempo real. Una cola de mensajes permite la comunicación asíncrona entre servicios y componentes mediante el almacenamiento de mensajes hasta que el consumidor esté listo para procesarlos. Los agentes de mensajes se utilizan en entornos más complejos para traducir mensajes de un protocolo a otro.

La arquitectura basada en eventos y los buses de eventos son tecnologías que permiten un modelo sin servidor para el cloud computing. La arquitectura sin servidor permite a los desarrolladores escribir e implementar código sin preocuparse de gestionar y configurar los servidores y la infraestructura subyacentes. Un bus de eventos puede ser una parte importante de la arquitectura sin servidor, ya que facilita los aspectos basados en eventos mediante la distribución y la gestión de mensajes de eventos.

Por qué los clientes eligen Akamai

Akamai es la empresa de ciberseguridad y cloud computing que potencia y protege los negocios online. Nuestras soluciones de seguridad líderes en el mercado, nuestra inteligencia ante amenazas consolidada y nuestro equipo de operaciones globales proporcionan una defensa en profundidad para proteger los datos y las aplicaciones empresariales. Las soluciones integrales de cloud computing de Akamai garantizan el rendimiento y una buena relación calidad-precio en la plataforma más distribuida del mundo. Las grandes empresas confían en Akamai, ya que les ofrece una fiabilidad, una escalabilidad y una experiencia inigualables en el sector, idóneas para crecer con seguridad.

Descubra todas las soluciones de seguridad de Akamai