Jump to section

¿Qué es la arquitectura basada en eventos?

Copiar URL

La arquitectura basada en eventos es un modelo y una arquitectura de software que sirve para diseñar aplicaciones. En un sistema como este, el registro, la comunicación, el procesamiento y la permanencia de los eventos son la estructura central de la solución. Esto difiere del modelo tradicional basado en solicitudes.

Muchos diseños de aplicaciones modernas se basan en eventos, como los marcos de interacción con los clientes, que deben utilizar los datos de los clientes de forma inmediata. Las aplicaciones con esta arquitectura pueden crearse con cualquier lenguaje de programación, ya que la expresión "basado en eventos" se refiere a un enfoque de programación, no a un lenguaje. La arquitectura basada en eventos posibilita un acoplamiento mínimo, así que es una buena opción para las aplicaciones distribuidas y modernas.

Su bajo nivel de acoplamiento se debe a que los productores de eventos no saben qué consumidores están atentos a un evento, y este desconoce cuáles serán sus consecuencias.

Los eventos son aquellos sucesos o cambios significativos en el estado del hardware o el software de un sistema. Un evento y su notificación no son lo mismo: la segunda es un mensaje que el sistema envía para comunicar a otra parte del sistema que se produjo cierto evento.

Los eventos pueden originarse por estímulos internos o externos. Pueden generarse con la actividad de un usuario, por ejemplo, cuando hace clic con el mouse o presiona una tecla; a partir de una fuente externa, como es el caso de un sensor; o provenir del sistema, como cuando se carga un programa.

Esta arquitectura está compuesta por productores y consumidores de eventos. El primero detecta los eventos y los representa como mensajes. No conoce al consumidor del evento ni el resultado que generará este último. 

Una vez que se detecta un evento, este se transmite del productor a los consumidores a través de canales de eventos, donde se procesa de manera asíncrona con una plataforma para este fin. Los consumidores deben recibir la notificación de que ocurrió un evento. Es posible que lo procesen o que solo se vean afectados por él. 

La plataforma de procesamiento ejecutará la respuesta adecuada para el evento y enviará la actividad a los consumidores correspondientes. Esta actividad downstream corresponde al lugar en el que se verá el resultado del evento. 

Apache Kafka es una conocida plataforma de transmisión de datos distribuida, que sirve para el procesamiento de eventos. Puede gestionar la publicación, el almacenamiento y el procesamiento de flujos de eventos de inmediato, así como la suscripción a ellos. La plataforma admite varios casos prácticos donde la alta productividad y la capacidad de ajuste son fundamentales. Además, gracias a que disminuye la necesidad de contar con integraciones de punto a punto para el intercambio de datos en ciertas aplicaciones, puede reducir la latencia a milisegundos. 

Hay otros administradores de eventos de middleware disponibles que pueden funcionar como plataforma de procesamiento de eventos.

Una arquitectura de este tipo puede basarse en un modelo de publicación/suscripción o en uno de flujo de eventos.

Modelo de publicación y suscripción

Es una infraestructura de mensajería que se basa en suscripciones a un flujo de eventos. Con este modelo, una vez que se genera o publica un evento, este se envía a los suscriptores que necesitan estar informados al respecto.

Modelo de flujo de eventos

Con este modelo, los eventos se escriben en un registro. Los consumidores no se suscriben a un flujo de eventos, sino que pueden leerlo desde cualquiera de sus partes y unirse a él en cualquier momento. 

Hay varios tipos de flujo de eventos:

  • El procesamiento de flujos de eventos utiliza una plataforma de transmisión de datos, como Apache Kafka, para incorporar los eventos y procesar o transformar su flujo. Este procesamiento se puede utilizar para detectar patrones significativos en los flujos.
  • El procesamiento de eventos simple surge cuando un evento desencadena inmediatamente una acción en el consumidor.
  • El procesamiento de eventos complejo requiere que un consumidor de eventos procese una serie de ellos para detectar patrones.

Con una arquitectura basada en eventos, las empresas obtienen un sistema flexible que se adapta a los cambios y toma decisiones rápidamente. Conocer la situación de inmediato favorece la toma de decisiones empresariales, ya sean automatizadas o manuales, en función de todos los datos disponibles que reflejan el estado actual de los sistemas. 

Los eventos se registran a medida que ocurren desde sus fuentes, como las redes, las aplicaciones y los dispositivos del Internet de las cosas (IoT), lo cual permite que los productores y los consumidores compartan información sobre el estado y la respuesta de forma inmediata. 

Las empresas pueden incorporar la arquitectura basada en eventos a sus sistemas y aplicaciones para mejorar la capacidad de ajuste y de respuesta de las aplicaciones, y para acceder a los datos y al contexto necesarios para tomar mejores decisiones.

Actualmente, las arquitecturas basadas en eventos y las aplicaciones originales de la nube con bajo acoplamiento que se desarrollaron con los métodos ágiles y de DevOps necesitan un enfoque de integración igualmente ágil y adaptable. 

La visión de Red Hat sobre la integración ágil es simplemente un enfoque para conectar sus recursos que combina tecnologías de integración, técnicas ágiles de distribución y plataformas desarrolladas directamente en la nube para mejorar la velocidad y la seguridad de la distribución de software. 

Red Hat ofrece las plataformas de integración y los sistemas de software de gestión que le permiten conectar las tecnologías heredadas y los microservicios en todos los entornos de nube híbrida con rapidez, y que respaldan su arquitectura basada en eventos con la integración ágil.

Artículos relacionados

Artículo

¿Qué es la integración?

¿Desea saber qué es la integración? Obtenga información acerca de qué es, cómo incorporarla y por qué es mucho mejor con un enfoque open source.

Artículo

¿Qué es Apache Kafka?

Apache Kafka es una plataforma distribuida de transmisión de datos que permite publicar, almacenar y procesar flujos de registros, así como suscribirse a ellos, de forma inmediata.

Artículo

¿Qué es una API?

Una API o interfaz de programación de aplicaciones es un conjunto de definiciones y protocolos que se usa para diseñar e integrar el software de las aplicaciones.

Más información sobre la integración

Productos

Conjunto completo de tecnologías de integración y mensajería.

Conjunto de productos y herramientas para desarrollar y mantener aplicaciones creadas en la nube.

Conjunto de productos para automatizar los procesos y decisiones de la empresa de manera inteligente.

Los servicios de nube de Red Hat® incluyen aplicaciones, plataformas y servicios de datos alojados y gestionados que optimizan la experiencia en la nube híbrida.

Contenido adicional

Ebook

Integración ágil: el plano técnico de la arquitectura empresarial

VISION GENERAL

Red Hat Cloud Services

Servicios gestionados para el desarrollo en la nube

Capacitación

Curso de capacitación gratuito

Red Hat Agile Integration Technical Overview

Illustration - mail

Obtenga más contenido como este

Suscríbase a nuestro boletín informativo: Red Hat Shares.