A los clientes les gusta estar al tanto de los eventos cuando suceden. Después de que un cliente ordena un nuevo par de zapatos y recibe una notificación de que la compra ha sido enviada, recibir actualizaciones de estado de envío actualizadas al minuto antes de que llegue mejora la experiencia general del cliente.
Las actualizaciones sobre su pedido son eventos que desencadenan una respuesta en unaarquitectura basada en eventos (EDA). Un EDA es un diseño de software que reacciona a los cambios de estado (eventos) y transmite estos eventos utilizando una arquitectura desacoplada. Esta arquitectura desacoplada puede emplear varios patrones de diseño, como el patrón de publicación-suscripción (pub-sub), donde un productor publica un evento y un suscriptor observa los eventos, pero ninguno depende del otro.
La transmisión de eventos y el abastecimiento de eventos representan dos formas en que las organizaciones pueden potenciar sus EDA.
Con la transmisión de eventos, hay un flujo continuo de datos que fluye entre los sistemas, y los datos representan un nuevo estado de transmisión de eventos mediante el patrón pub-sub. El abastecimiento de eventos, por otro lado, almacena cada nuevo evento en un registro adjunto. Esto sirve como una fuente de verdad que contiene un orden cronológico de eventos y contextos.
El abastecimiento de eventos y la transmisión de eventos a menudo se usan en conjunto en los EDA, pero es importante distinguirlos, ya que funcionan de manera muy diferente. Si bien los flujos de eventos promueven una comunicación más accesible entre los sistemas, el abastecimiento de eventos proporciona un historial de eventos al almacenar nuevos eventos en un registro de solo anexar.
Aquí, discutiremos ambos métodos de coordinación de eventos y proporcionaremos algunos casos de uso para cada uno.
La transmisión de eventos emplea el enfoque pub-sub para permitir una comunicación más accesible entre sistemas. En el patrón arquitectónico pub-sub, los consumidores se suscriben a un tema o evento, y los productores publican sobre estos temas para el consumo de los consumidores. El diseño pub-sub desacopla los sistemas de editores y suscriptores, lo que facilita escalar cada sistema individualmente.
Los sistemas de editor y suscriptor se comunican a través de un intermediario de mensajes como
La transmisión de eventos implica el flujo continuo de datos de fuentes como aplicaciones, bases de datos, sensores y dispositivos IoT. Los flujos de eventos emplean procesamiento de flujo, en el que los datos se procesan y analizan durante la generación. Este procesamiento rápido se traduce en resultados más rápidos, lo que es valioso para las empresas que tienen una ventana de tiempo limitada para tomar medidas, como ocurre con cualquier aplicación en tiempo real.
La transmisión de eventos ofrece varias ventajas para las empresas; aquí hay algunos:
La transmisión y el procesamiento de eventos ofrecen a las organizaciones la capacidad de enriquecer la experiencia de sus clientes. Por ejemplo, un cliente que realiza un pedido de cena puede obtener actualizaciones de estado instantáneas, notificándoles cuando el vehículo de entrega está en camino a su ubicación o si ha llegado. Esta experiencia mejorada del cliente se traduce en más confianza, mejores reseñas y mejores ingresos.
Las aplicaciones como PayPal y otras aplicaciones de tecnología financiera pueden emplear la transmisión de eventos para proporcionar detección de fraude en línea para mejorar la seguridad mediante el monitoreo en tiempo real. Los algoritmos de fraude prueban las circunstancias de un evento (compra o transacción) utilizando análisis predictivos para detectar una desviación de la norma (un valor atípico). Si el sistema detecta un evento atípico o inusual, detiene la transacción o bloquea la tarjeta para que no la complete.
Mediante el análisis de flujos de eventos, las herramientas industriales pueden registrar métricas de rendimiento y estado para evaluar el estado del equipo. Esta función permite a las organizaciones realizar un mantenimiento predictivo en las máquinas antes de una avería total, lo que cuesta más reparar. En la fabricación, por ejemplo, las organizaciones pueden emplear flujos de Pulsar para agregar y procesar datos de parámetros de la máquina como la temperatura o la presión. Los ingenieros podrían establecer la temperatura máxima de una máquina y configurar una alerta que se activaría si se excede esa temperatura. Los operadores de máquinas podrían realizar revisiones y mantenimiento antes de que ocurran problemas más costosos.
La transmisión de eventos es esencial para las empresas y las aplicaciones que transmiten un gran volumen de datos y dependen de información rápida y procesable. Estas aplicaciones incluyen comercio electrónico, comercio financiero y dispositivos IoT.
Las aplicaciones de comercio financiero emplean la transmisión de eventos para publicar eventos sensibles al tiempo en los que los clientes desean actuar de inmediato. Por ejemplo, los usuarios pueden suscribirse a un servicio de back-end que envía actualizaciones sobre eventos específicos, como un cambio en el precio de las acciones, para permitir la toma de decisiones oportuna.
La transmisión de eventos también tiene aplicaciones de detección de riesgos y fraudes en sistemas financieros que procesan pagos y otras transacciones (y bloquean transacciones fraudulentas). Los algoritmos de fraude definidos pueden bloquear transacciones sospechosas al analizar los datos inmediatamente después de generarlos.
El abastecimiento de eventos almacena datos como eventos en registros adjuntos. El proceso captura cada cambio en el estado de una aplicación en un objeto de evento y almacena estos objetos de evento como registros en orden cronológico. Con el abastecimiento de eventos, las tiendas de eventos compilan el estado de una entidad comercial como un evento en una secuencia, y un cambio en el estado, como nuevos pedidos o la cancelación de un pedido, agrega el estado más reciente a la lista de eventos.
Para que el abastecimiento de eventos funcione de manera eficiente y consuma recursos mínimos, cada objeto de evento solo debe contener los detalles necesarios. Eso minimiza el espacio de almacenamiento y evita el uso de recursos valiosos en el procesamiento de datos que conducen a información no procesable.
Las tiendas de eventos recopilan eventos comerciales y contexto; agregar secuencias largas a los registros de eventos consume el almacenamiento de la base de datos rápidamente. Mantener solo los contextos de eventos necesarios como parte del objeto de evento ayuda a liberar espacio de almacenamiento para agregar varios registros de eventos, lo que genera información procesable.
Las organizaciones pueden optar por utilizar "instantáneas" para ayudar a optimizar el rendimiento en tales casos. Las instantáneas permiten el almacenamiento del estado actual de la entidad. Conocer el estado actual solo puede implicar extraer las instantáneas y recrear una línea de tiempo para conocer el estado más actual.
Ilustremos esto. Supongamos que tenemos una base de datos que hace un balance de los artículos recientes en una tienda de comercio electrónico:
La mayoría de las bases de datos almacenan solo el estado actual. Si tuviéramos que dar cuenta del viaje hasta llegar al valor final de las acciones de 91, no habría certeza ni claridad sobre cómo llegamos allí. El abastecimiento de eventos registra cada cambio de estado en un registro, lo que hace posible el seguimiento del historial de eventos para el análisis de la causa raíz y la auditoría.
Las organizaciones de atención médica son una de las industrias más reguladas, con regulaciones en constante cambio para proteger la información del cliente. Necesitan una solución de almacenamiento flexible que se adapte a las crecientes necesidades de datos y, al mismo tiempo, mantenga una migración fácil de los sistemas heredados a las tecnologías más nuevas.
Al emplear almacenes de eventos como su única fuente de verdad, los sistemas de atención médica pueden confiar en el estado inmutable de los registros de eventos para conocer el estado real de sus datos y hacer proyecciones valiosas al emplear el procesamiento de flujo en tiempo real. Las empresas minoristas y de comercio electrónico podrían obtener un mejor conocimiento de sus clientes mediante el análisis de tiendas de eventos grandes y duraderas, lo que les ayuda a crear experiencias de cliente más personalizadas.
Hay algunas similitudes entre la transmisión de eventos y el abastecimiento de eventos. Por un lado, cada método de coordinación de eventos emplea una arquitectura de microservicios desacoplados, lo que ayuda a mejorar la escalabilidad y el rendimiento.
Aunque las secuencias y los almacenes de eventos difieren en cuanto a la durabilidad del estado, son esenciales para proporcionar los estados de eventos actuales de las aplicaciones para su uso en el análisis y la toma de decisiones empresariales. Además, ambos métodos de coordinación de eventos poseen capacidades de almacenamiento duraderas, aunque las tiendas de eventos suelen ofrecer un almacenamiento más prolongado que los flujos de eventos.
Aquí, profundicemos más en algunas diferencias clave entre la transmisión de eventos y el abastecimiento de eventos.
La transmisión de eventos es óptima para una comunicación más accesible entre los datos en movimiento al desvincular a los editores de los suscriptores y facilitar la publicación de millones de mensajes con un alto rendimiento. Por otro lado, el abastecimiento de eventos ayuda a establecer el historial de eventos al almacenar cada nuevo estado de una entidad en un registro de solo anexar.
Para el abastecimiento de eventos, los datos existen en reposo porque los eventos son inmutables. Sin embargo, los flujos de eventos involucran datos siempre en tránsito, pasando entre múltiples sistemas de almacenamiento como bases de datos, sensores y aplicaciones.
La transmisión de eventos y el abastecimiento de eventos ayudan a coordinar eventos en una arquitectura basada en eventos. Aunque su uso y valor son diferentes, funcionan bien juntos para ayudar a crear una aplicación duradera y de alto rendimiento.
La transmisión de eventos emplea el patrón pub-sub desacoplado para transmitir continuamente datos de varias fuentes, lo que ayuda a impulsar la toma de decisiones comerciales. Desafortunadamente, aunque las herramientas de transmisión de eventos pueden poseer un almacenamiento duradero, no están diseñadas para almacenar mensajes por mucho tiempo, ya que las características de almacenamiento duradero solo persisten el tiempo suficiente para que sean tolerantes a fallas y resistentes.
Uno puede ver el abastecimiento de eventos como un subconjunto o componente de la transmisión de eventos. El abastecimiento de eventos agrega un nuevo evento a la lista actual de eventos de manera ordenada. También puede actuar como fuente de verdad para auditorías confiables y obtener el estado actual de los eventos en cualquier momento. El abastecimiento de eventos es crucial para las industrias financieras con estrictos requisitos regulatorios y de auditoría y un almacén confiable para rastrear y construir el estado actual de los eventos. Por el contrario, la transmisión de eventos es crucial en las aplicaciones de comercio financiero donde las acciones tienen una ventana de tiempo y requieren una acción inmediata.
EDA no es necesariamente un destino. Es un camino a seguir, impulsando ciertas características y rendimiento del sistema. Por ejemplo, el abastecimiento de eventos desacopla una colección de microservicios para que sean menos dependientes entre sí. Esto impulsa la resiliencia y una iteración más fácil, entre otros beneficios. En combinación con el abastecimiento de eventos, los microservicios obtienen la capacidad de reproducir eventos, así como un registro completo de cambios para una característica determinada, como el perfil de un usuario. Este tipo de arquitectura abre nuevas posibilidades dentro de los sistemas existentes.
También publicado aquí.