La arquitectura dirigida por eventos: Pasos y beneficios
Tiempo de lectura: aproximadamente 8 min
Temas:
¿Sabías que todos los días producimos 2.5 trillones de bytes de datos (es decir, un uno seguido de 18 ceros)? Para procesar y rastrear todos estos datos, las organizaciones necesitan aplicaciones flexibles que puedan adaptarse a los cambios, mantener a los usuarios comprometidos y proporcionar información instantánea.
En este artículo, revisaremos cómo la arquitectura dirigida por eventos puede ayudar a tus equipos a desarrollar aplicaciones para rastrear y sintetizar datos.
¿Qué es la arquitectura dirigida por eventos?
La arquitectura dirigida por eventos (ADE) o en inglés, Event Driven Architecture, es un diseño de desarrollo de aplicaciones que se utiliza para responder a un “evento” en tiempo real o lo más cercano posible a que este ocurra. Por ejemplo, piensa en la colocación de un pedido en un sitio de comercio electrónico. Ese evento determina qué acciones debe tomar cualquier servicio después de que ocurra el evento.
Para que el evento active la respuesta correcta, un sistema dirigido por eventos sigue tres componentes clave: productores de eventos, enrutadores de eventos y consumidores de eventos.
Funciona más o menos así:
Productor de eventos: un cliente coloca un pedido en un sitio de comercio electrónico que crea un evento “Proceso de pago” que se envía a un enrutador de eventos.
Enrutador de eventos: permite que el evento esté disponible para los consumidores de eventos que se suscriban a eventos de tipo “Proceso de pago”.
Consumidores de eventos: servicios como “Inventario” y “Comunicación”.
El servicio “Inventario” verifica si el artículo está en existencia. Si el artículo está en existencia, se crea un evento y el servicio “Comunicación” consume dicho evento, el cual envía un mensaje para informar al cliente que el pedido se está procesando y se mandará otro mensaje cuando se envíe el pedido.
Si el artículo está agotado, el servicio “Comunicación” le informa al consumidor que puede esperar a que el artículo esté en existencia o cancelar el pedido.
Cuando se envía el artículo, un servicio de “Envío” crea un evento que se consume en el servicio de “Comunicación”, el cual envía un mensaje con información, como el número de rastreo del paquete, la fecha de envío y la fecha en que se espera que se entregue.
¿Cuáles son los beneficios de la ADE?
Hay varias ventajas de la programación dirigida por eventos, que incluyen:
Servicios con acoplamiento débil: los productores de eventos y los consumidores no están acoplados. El productor no sabe qué consumidores están esperando los eventos que produce. Simplemente entrega el evento a un enrutador, donde los consumidores pueden encontrar los tipos de eventos a los que se suscriben.
Debido a que los productores y consumidores no están al tanto y no dependen unos de otros, no hay una única fuente de fallas. Ahora, si un servicio falla, los demás siguen ejecutándose para que los eventos se consuman y procesen como se esperaba.
Escalable: como los productores y consumidores no se conocen entre sí, no hay integración punto a punto. Ahora es mucho más fácil agregar nuevos servicios al sistema y evitar fallas en el proceso.
Desarrollo en Agile: como es fácil agregar nuevos servicios a los sistemas ADE, el desarrollo se ajusta bien en un entorno de Agile. El enrutador de eventos es el mediador entre los servicios que filtra y envía eventos a los consumidores.
Esto significa que no tienes que escribir un código personalizado que busque, filtre y transmita eventos a los consumidores. Al final, esto acelera el desarrollo y te permite añadir rápidamente nuevos servicios sin un gran impacto en los componentes actuales.
Menores costos: los sistemas ADE se basan en la tecnología push, lo que significa que todo sucede bajo demanda y que el sistema no está sondeando continuamente los servidores en busca de eventos. El sondeo y procesamiento bajo demanda utiliza menos recursos de red, lo que reduce los costos generales.
Respuesta y análisis en tiempo real: las aplicaciones responden a los cambios en tiempo real utilizando datos actuales e históricos para tomar decisiones. Este tipo de respuesta ayuda al sistema a predecir y resolver las amenazas para la seguridad sobre la marcha al automatizar y optimizar las cadenas de suministro.
¿Cuándo deberías usar la arquitectura basada en eventos?
Si necesitas que tus aplicaciones sean interoperables con diversos sistemas y subsistemas, es el momento de considerar el uso de una programación dirigida por eventos para abordar lo siguiente:
Replicación de datos entre cuentas y regiones: la arquitectura dirigida a eventos es adecuada para las empresas que operan en diferentes ubicaciones geográficas. Los enrutadores de eventos pueden transferir datos a varios sistemas ubicados en diferentes regiones y cuentas. Esto mantiene los sistemas coordinados mientras que permite que tus equipos desarrollen e implementen nuevas aplicaciones y servicios de manera independiente de otros equipos.
Procesamiento con distribución a múltiples destinos y en paralelo: usa la ADE para distribuir un solo evento a múltiples sistemas que necesitan responder a este, evitando que tus equipos escriban un código personalizado que envíe el evento a cada consumidor. Cada sistema puede procesar el evento al mismo tiempo para diferentes propósitos.
Monitoreo y alerta del estado de los recursos: los ADE pueden monitorear los recursos por ti y enviar alertas cuando hay cambios en el estado, si encuentra anomalías, y cuando se actualizan los componentes.
Integración de sistemas heterogéneos: utiliza enrutadores de eventos para compartir información entre sistemas que utilizan diferentes pilas tecnológicas.
Situaciones de casos de uso
Es posible que desees implementar el diseño de ADE en las siguientes situaciones:
Finanzas
Realiza un monitoreo de las transacciones para fraudes. Utiliza inteligencia artificial (IA) y aprendizaje automático (ML) para predecir y encontrar la probabilidad de fraude.
Asistencia médica
Los eventos pueden crear alertas para realizar mantenimiento preventivo en equipos médicos. Brindan atención médica proactiva y personalizada basada en datos en tiempo real recopilados de dispositivos de monitoreo portátiles.
Cadena de suministros
Obtén una visibilidad completa desde la colocación del pedido hasta el envío con los eventos que se crean en cada paso del proceso. Mantente al día con la demanda de los clientes sabiendo cuántas existencias tienes en tu almacén y en las tiendas.
Internet de las cosas (IoT)
Las “cosas” inteligentes nunca saben con qué dispositivo van a tener que trabajar. Por ejemplo, las luminarias inteligentes deben comprender y responder a un evento como “encender”, ya sea que el evento provenga de la IA, la entrada manual en una aplicación o un temporizador.
Omnicanal
Realiza un seguimiento del comportamiento del cliente. Obtén información estratégica de los datos recopilados para ayudarte a responder en tiempo real a las necesidades del cliente.
Cómo empezar
Para muchas empresas, la implementación de un sistema ADE requiere una renovación completa de los sistemas y las aplicaciones actuales. Los ADE ayudan a las organizaciones a ser más ágiles, aprovechar las tecnologías en la nube y planear nuevas tecnologías. Una renovación completa puede llevar mucho tiempo y tener un costo inviable. Pero hay algunas medidas generales que puedes tomar para empezar.
Paso 1: hacer que los sistemas actuales estén habilitados para eventos
Rompe los silos debidos a los diversos sistemas que no interactúan ni se comunican bien entre sí. Codifícalos para que puedan publicar eventos en tiempo real. Esto eliminará la necesidad de codificar API personalizadas para mover datos.
Libera los datos haciendo que los cambios y otros eventos sean inmediatamente visibles para los sistemas y aplicaciones que quieren conocer estos eventos.
Paso 2: moderniza tu entorno de aplicaciones actual
Las arquitecturas híbridas y multinube están ganando popularidad debido a que son flexibles. De acuerdo con Santosh Rao, director de Gestión de Productos de AWS RDS/Aurora en Amazon Web Services:
“Las arquitecturas híbridas se convertirán en las huellas que permiten a las organizaciones extenderse más allá de sus centros de datos y a los servicios en la nube en plataformas múltiples”.
Por lo tanto, necesitas una forma de mover eventos y datos a través de múltiples sistemas que se ejecutan simultáneamente. Al mismo tiempo, debes trasladar las cargas de trabajo a los sistemas que actualmente ofrecen el mejor desempeño y disponibilidad.
Moderniza tu entorno de aplicaciones para aprovechar la infraestructura en la nube. Por ejemplo, integra aplicaciones SaaS disponibles en la nube que admitan las funciones que te interesan.
Paso 3: alerta e informa
Cuando tus aplicaciones están dirigidas por eventos, tus datos dejarán de estar atrapados en sistemas cerrados o en silos. Los productores de eventos te permiten interactuar con varios equipos, socios comerciales, proveedores y clientes. Los eventos eliminan la necesidad de procesos de extracción, transformación y carga (ETL) y el sondeo constante de las entidades interesadas en tus datos. Esto libera el ancho de banda de la red y los procesos de CPU, además de que brinda a los consumidores una mayor respuesta en tiempo real.
Visualízalo
Para empezar, visualiza y traza lo que intentas lograr. Utiliza las herramientas disponibles de Lucid para colaborar, capturar ideas y visualizar arquitecturas y procesos de negocio.
Lucidspark, una pizarra virtual basada en la web, permite a los integrantes del equipo de cualquier parte del mundo reunirse para intercambiar ideas, colaborar y convertir ideas en elementos de acción.
Usa Lucidchart para crear imágenes dinámicas que tracen los procesos de negocio, flujos de trabajo, gráficos, arquitecturas y todo lo que te brinde información y una perspectiva panorámica de los sistemas que deseas implementar. Todos los documentos de Lucidchart se almacenan en la nube para que los equipos puedan abrirlos y colaborar en ellos en tiempo real, independientemente de dónde se encuentren o de la hora que sea.
Elabora el diagrama de tu arquitectura dirigida por eventos mediante nuestra plantilla de proceso de gestión de eventos personalizable.
Obtén visibilidad de tu infraestructura con LucidchartAcerca de Lucidchart
Lucidchart, una aplicación de diagramación inteligente basada en la nube, es un componente central de la Suite de Colaboración Visual de Lucid Software. Esta solución intuitiva basada en la nube les permite a los equipos colaborar en tiempo real para crear diagramas de flujo, prototipos, diagramas UML, mapas de recorrido del cliente y más. Lucidchart impulsa a los equipos a desarrollar el futuro más rápido. Lucid se enorgullece de brindar sus servicios a las empresas más grandes de todo el mundo, incluidos clientes como Google, GE, NBC Universal y el 99 % de la lista Fortune 500. Lucid está asociada con líderes de la industria como Google, Atlassian y Microsoft. Desde su fundación, la empresa ha recibido numerosos premios por sus productos, prácticas comerciales y cultura corporativa. Para obtener más información, visita lucidchart.com.