Pensar en la arquitectura Event-Driven, en términos de IoT, es una buena manera de posicionar la tecnología con un escenario con el que podemos asociar fácilmente el volumen. Sin embargo, puede ser un poco restrictivo como escenario con respecto al valor más amplio del concepto/ paradigma. Apache Kafka no se desarrolló para el IoT. Se desarrolló para resolver un reto de aplicación en LinkedIn. Por lo tanto, debemos pensar en la arquitectura Event-Driven en escenarios de diseño de aplicaciones más tradicionales, y hay un montón de escenarios más allá del IoT que representan una buena aplicación del enfoque.
Pero, ¿sabes qué es la arquitectura Event-Driven? Te contamos todo sobre qué es, cúando y por qué deberías de adoptar esta arquitectura Event-Driven en tu empresa.
¿Qué es la arquitectura Event-Driven y el streaming de eventos?
Así pues, el modelo Event-Driven es una arquitectura de tecnología y aplicación que trabaja con eventos. The Internet of Things (IoT) o el internet de las cosas es un ejemplo sólido y obvio de algún lugar en el que podríamos considerar el empleo de la arquitectura Event-Driven. Podemos prever, por ejemplo, una multitud de sensores que midan nuestro entorno, emitan y escuchen eventos a escala.
Este streaming de eventos es lo que denominamos flujo de datos. Cuando pensamos a escala, podemos ver la necesidad de tener una arquitectura que soporte este tipo de datos. Normalmente, esta arquitectura incluiría:
- Backbone de eventos: bróker de eventos, temas, flujos (de)serializadores, etc.
- Chasis de microservicios: DevOps, monitorización, registro, autenticación y autorización, registro, etc.
- Capa de servicios y microservicios: servicios de orquestación, microservicios, servicios de datos y
análisis, etc. - Capa de Datos: almacén de métricas, almacén de datos, almacén de datos operativos, etc.
¿Cuándo y por qué debo adoptar la arquitectura Event-Driven? Las razones para adoptarlo
La integración de sistemas es uno de los ámbitos en los que podemos aplicar el flujo de eventos. Después de todo, ya hemos aprendido que sigue un patrón de publicación/suscripción muy parecido al de un ESB. Pensar en un bróker de eventos como un bróker de mensajería genérico puede aportarnos muchos escenarios potenciales de integración, lo que no encontrarás; sin embargo, es un montón de sistemas/aplicaciones en tu cartera que soporten de por sí los eventos.
Tendrás que desarrollar esta capacidad o utilizar herramientas de terceros, como Kafka Connect de Confluent, para permitir esta actividad. Kafka Connect ofrece soporte para muchas bases de datos, Google pub/sub, Azure Event Hubs y algunas de las aplicaciones SaaS más grandes, como Salesforce, Zendesk y ServiceNow.
Otro ejemplo sería una tienda de comercio electrónico que genera una gran cantidad de eventos potenciales en los que podríamos estar interesados. Tradicionalmente pensamos en este tipo de aplicaciones por el resultado que producen. Se añade un artículo a la cesta, se pasa por caja y se crea un pedido. Desde el punto de vista comercial, en general, solo nos interesa el resultado del pedido. Sin embargo, la experiencia general del cliente y la inteligencia que obtenemos de ella pueden mejorarse significativamente adoptando un enfoque Event-Driven.
Las búsquedas que la gente hace en una tienda, los artículos que se añaden y eliminan de un carrito nos informan más sobre el recorrido de compra general del cliente. Los artículos que se buscan, se añaden al carrito, se retiran del carrito, se compran, se piden , se responden, etc., pueden ayudarnos a predecir la demanda, e incluso a ajustar los precios de forma dinámica. Las actualizaciones en tiempo real sobre el progreso del pedido, hasta donde se encuentra el conductor de la entrega con su pedido, mejoran la experiencia general del cliente.
Los clientes ahora saben que su entrega de Amazon está a 3 paradas de distancia y Amazon conoce el detalle logístico de cada una de las entregas que se realizan. Estos flujos de eventos de interacción y cumplimiento del usuario nos informan del comportamiento. Esto puede resultar muy difícil de conseguir con un enfoque de aplicación más tradicional, en el que veremos el mundo términos de cosas y resultados transaccionales.
Por lo tanto, podemos pensar en las aplicaciones Event-Driven como:
- Reactivas: responden a los acontecimientos en tiempo real, a medida que se producen
- Receptivas: proporcionan una experiencia personalizada con capacidad de respuesta
- Inteligentes: aportan inteligencia y análisis en tiempo real
Pensar de esta manera, nos ayuda a posicionar las aplicaciones que pueden encajar bien en este tipo de enfoque de desarrollo. Sin embargo, lo más importante es considerar el enfoque cuando lo anterior realmente marca la diferencia o contribuye a la fórmula secreta del negocio.
Un negocio minorista más pequeño podría considerar que la experiencia del cliente de saber dónde está su entrega es algo que precisamente se consigue de forma más pragmática, con la utilización de Amazon para cumplir con sus pedidos. Si preguntamos, la mayoría de los usuarios dirán que les gustaría esto para todas sus aplicaciones empresariales.
Tenemos que sopesar lo que cuesta entregar estas aplicaciones mediante este enfoque con el valor que aporta. ¿Necesito que mi sistema financiero esté en tiempo real o que la reposición de existencias se produzca a medida que se agotan, cuando no puedo conseguir una economía de escala en las compras? Es muy fácil que cualquier enfoque se convierta en la respuesta a todo.
Además, la mayoría de los proveedores de tecnología dirán que su solución es la respuesta a todos los problemas a los que se puede aplicar.
Si quieres saber cómo Chakray puede ayudarte a adoptar Event-Driven, ¡contáctanos!