La transmisión de eventos es la práctica de capturar datos en tiempo real de aplicaciones, bases de datos y dispositivos IoT y transportarlos a varios destinos para su procesamiento y almacenamiento inmediatos, o para su análisis en tiempo real y la elaboración de informes analíticos.
Una función clave en el procesamiento de secuencias de eventos (ESP), la transmisión de eventos permite a las infraestructuras de TI gestionar grandes secuencias continuas de eventos procesando los datos cuando se produce el evento o cambio.
La transmisión de eventos suele servir de complemento al procesamiento por lotes, que actúa sobre grandes conjuntos de datos estáticos (o "datos en reposo"). Sin embargo, en lugar de procesar los datos en lotes, la transmisión de eventos gestiona puntos de datos individuales a medida que emergen. Este enfoque permite que el software dentro de la arquitectura interprete y responda a flujos de datos ("datos en movimiento") en tiempo real.
Los servicios de transmisión de eventos de alto rendimiento pueden realizar toda una serie de tareas simples y complejas, desde enviar notificaciones cuando cambian los precios de las acciones o los productos hasta crear modelos de machine learning en tiempo real que detectan actividades sospechosas de los usuarios. Incluso en el caso del procesamiento por lotes, la transmisión de eventos puede añadir profundidad a las analytics de datos al conectar los eventos con sus respectivas marcas de tiempo. También ayuda a identificar tendencias históricas, proporcionando conocimiento valioso a lo largo del tiempo.
La transmisión de eventos gira en torno al flujo ilimitado, secuencial y en tiempo real de registros de datos, llamados "eventos", estructuras de datos fundacionales que registran cualquier ocurrencia en el sistema o entorno. Es un término que se refiere esencialmente a todos los puntos de datos del sistema. Por lo tanto, la "secuencia" (también llamada secuencia de datos) es la entrega continua de esos eventos.
Cada evento suele comprender una clave que identifica el evento o la entidad a la que pertenece, junto con un valor que contiene los datos reales del evento. Además, incluye una marca de tiempo que indica cuándo se produjo o se registró el evento y, a veces, metadatos sobre la fuente de datos, la versión del esquema u otros atributos.
Con la ayuda de motores especializados de procesamiento de secuencias, los eventos pueden someterse a algunos procesos diferentes dentro de una secuencia. Las "agregaciones" realizan cálculos de datos, como medias, sumas y desviación estándar. La "ingesta" añade datos de secuencias a las bases de datos. El procesamiento analítico utiliza patrones en la transmisión de datos para predecir eventos futuros, y el procesamiento de enriquecimiento combina puntos de datos con otras fuentes de datos para proporcionar contexto y crear significado.
Los eventos suelen estar vinculados a operaciones comerciales o procesos de navegación del usuario y normalmente desencadenan otra acción, proceso o serie de eventos. Tomemos como ejemplo la banca electrónica.
Cuando un usuario hace clic en "transferir" para enviar dinero de una cuenta bancaria a otra, los fondos se retiran de la cuenta del remitente y se añaden a la cuenta bancaria del destinatario. Se envían notificaciones por correo electrónico o SMS a una de las partes (o a ambas) y, si es necesario, se implementan protocolos de seguridad y prevención del fraude.
Los eventos son el componente central de la transmisión de eventos. Sin embargo, un conjunto de otros componentes permite a los servicios de streaming procesar los eventos con la rapidez y eficacia con que lo hacen. Otros componentes vitales incluyen:
Los intermediarios, o intermediarios de mensajes, son los servidores que ejecutan plataformas de transmisión de eventos. Los intermediarios de mensajes permiten que las aplicaciones, los sistemas y los servicios se comuniquen entre sí e intercambien información. Logran esta funcionalidad convirtiendo mensajes entre protocolos de mensajería formales. Esto permite a los servicios interdependientes "hablar" entre sí directamente, incluso si están escritos en diferentes lenguajes (Java o Python, por ejemplo) o implementados en diferentes plataformas. También facilita la disociación de los procesos y servicios dentro de los sistemas.
Los intermediarios pueden validar, almacenar, enrutar y entregar mensajes a los destinos apropiados. En los sistemas de transmisión de eventos distribuidos, los intermediarios garantizan una baja latencia y una alta disponibilidad replicando eventos en varios nodos. Los intermediarios también pueden formar clústeres: conjuntos de intermediarios que trabajan juntos para facilitar el equilibrio de carga y la escalabilidad.
Los temas son categorizaciones o nombres de feeds en los que se publican los eventos, que proporcionan una forma de organizar y filtrar los eventos dentro de la plataforma. Actúan como el "tema" de los eventos, permitiendo a los consumidores suscribirse a temas y recibir sólo los eventos relevantes.
Los temas se pueden dividir en particiones, lo que permite a varios consumidores leer un tema simultáneamente sin alterar el orden de cada partición.
Un offset es un identificador único para cada evento dentro de una división, que marca la posición de un evento dentro de la secuencia. Los consumidores utilizan los offsets para organizar los eventos que han procesado. Si, por ejemplo, un consumidor se desconecta de un evento y luego se vuelve a conectar, puede reanudar el procesamiento desde el último offset conocido.
Dada la proliferación de datos, y el consiguiente aumento del tráfico de datos, la transmisión de eventos es un componente esencial de las arquitecturas de datos modernas. Es valioso en entornos que requieren capacidades de toma de decisiones ultrarrápidas o en organizaciones que buscan automatizar las responsabilidades de toma de decisiones.
Así es como los servicios de transmisión de eventos gestionan los datos de eventos:
Además del streaming y procesamiento estándar, las plataformas de transmisión de eventos, como Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM® Event Automation, facilitan una variedad de prácticas de transmisión de eventos que mejoran la funcionalidad. IBM Event Automation, en particular, utiliza la potencia de procesamiento de la plataforma Apache Kafka de código abierto para optimizar los flujos de trabajo basados en eventos.
La semántica de entrega sólo una vez garantiza que cada evento de una secuencia se procese exactamente una vez, una función esencial para evitar que se dupliquen o se pierdan los eventos de secuencias. La mayoría de los sistemas de transmisión de eventos incluyen mecanismos para proporcionar una semántica exactamente una vez, independientemente de los fallos en otras partes del sistema.
Cuando los componentes posteriores no pueden seguir el ritmo de la tasa de eventos entrantes, la contrapresión evita que las secuencias abrumen el sistema. Con la contrapresión, un mecanismo de control del flujo de datos, los consumidores pueden indicar a los productores que aceleren o detengan la producción de datos cuando se vean desbordados por el procesamiento de datos o sean incapaces de seguir el ritmo de los eventos entrantes.
Este proceso permite que los sistemas gestionen correctamente las cargas de trabajo almacenando en búfer o eliminando los eventos entrantes, en lugar de interrumpir todo el sistema, de modo que el procesamiento de eventos se mantenga estable a medida que fluctúan las cargas de trabajo.
Los consumidores de eventos suelen trabajar como parte de un grupo de consumidores para acelerar el consumo de eventos. A cada consumidor de un grupo de consumidores se le asigna un subconjunto de particiones para procesar, paralelizando el consumo para una mayor eficiencia. Si uno de los consumidores del grupo falla o necesita ser añadido o eliminado, la plataforma puede reasignar particiones dinámicamente para mantener el equilibrio y la tolerancia a fallos.
La transmisión de eventos a menudo implica procesar datos de forma sensible al tiempo. La marca de agua permite el seguimiento del progreso (utilizando el tiempo del evento) en los sistemas de procesamiento de flujos. Impone un umbral de integridad que indica cuándo el sistema puede considerar que los datos de los eventos están completamente procesados. La marca de agua también puede ser útil para garantizar la precisión en el procesamiento basado en el tiempo y para conciliar eventos que no se ajustan al orden.
La mayoría de las plataformas de transmisión de eventos ofrecen políticas de retención de datos personalizables que permiten a los desarrolladores controlar cuánto tiempo están disponibles los eventos para su consumo. Sin embargo, la compactación de datos es un proceso que elimina los datos redundantes u obsoletos de los temas, manteniendo la huella de almacenamiento mínima y preservando los datos esenciales.
Cabe señalar, de nuevo, que las arquitecturas de transmisión estándar suelen desacoplar a los productores de eventos, los intermediarios de eventos y los consumidores, de modo que los componentes se pueden escalar y mantener de forma independiente.
La transmisión de eventos es un concepto poderoso que permite a las organizaciones utilizar los datos a medida que se generan, creando sistemas más inteligentes y con mayor capacidad de respuesta. Con el auge de la toma de decisiones basada en los datos, la transmisión de eventos es un componente cada vez más importante en las arquitecturas de software modernas.
Como tales, las tecnologías de transmisión de eventos tienen una amplia gama de casos de uso en todos los sectores empresariales, entre ellos:
Las instituciones financieras pueden utilizar los servicios de transmisión de eventos para procesar los datos del mercado en tiempo real, lo que permite a los sistemas de negociación algorítmica tomar decisiones en fracciones de segundo en función de las condiciones de mercado actualizadas al minuto. Las capacidades de monitorización en tiempo real de la transmisión de eventos también ayudan a las instituciones a identificar y abordar rápidamente el fraude y los riesgos de seguridad.
La transmisión de eventos puede facilitar la optimización de la cadena de suministro al permitir a los fabricantes realizar un seguimiento de los materiales y productos a medida que avanzan por la cadena de suministro para identificar cuellos de botella e ineficiencias en los procesos. Además, al transmitir datos de sensores IoT/IIoT en maquinaria, los gestores pueden predecir cuándo y por qué el equipo podría fallar y realizar mantenimiento preventivo o mantenimiento predictivo para evitar tiempos de inactividad no planificados.
Las plataformas de juegos en línea pueden utilizar los servicios de transmisión de eventos para realizar un seguimiento de las acciones de los jugadores y los cambios en el estado del juego, lo que puede utilizarse para ejecutar análisis del juego, aplicar políticas antitrampas y aumentar la participación de los jugadores. Las plataformas de transmisión pueden aprovechar los datos de eventos para ofrecer recomendaciones de contenido personalizadas a los usuarios y crear una experiencia de cliente personalizada.
La transmisión de eventos se puede utilizar para rastrear la ubicación y el estado del vehículo, lo que permite enrutar en tiempo real en función de las condiciones del tráfico, los horarios de entrega y el rendimiento del vehículo. Del mismo modo, las empresas de logística pueden utilizar datos de eventos procedentes de dispositivos de escaneado y rastreadores GPS para ofrecer a los clientes actualizaciones en tiempo real sobre el estado de sus entregas de comercio electrónico.
Más allá de industrias específicas, la transmisión de eventos también puede ser útil cuando se implementa en conjunto con otras tecnologías y arquitecturas. Por ejemplo, la transmisión de eventos a veces se asocia con patrones como el abastecimiento de eventos y la segregación de responsabilidad de consultas de comandos (CQRS).
El abastecimiento de eventos es un patrón arquitectónico en el que los cambios en el estado de la aplicación se almacenan como una secuencia de eventos. Utilizado junto con la secuencias de eventos, el abastecimiento de eventos permite al sistema de transmisión reproducir estos eventos para reconstruir el estado de una entidad en cualquier momento o para impulsar otros componentes del sistema.
En un patrón arquitectónico CQRS, el sistema se divide en dos modelos diferentes: uno que gestiona los comandos (escritura) y otro que gestiona las consultas (lectura). La transmisión de eventos puede utilizarse en CQRS para propagar los cambios del modelo de escritura al modelo de lectura en tiempo real, lo que permite la integración asíncrona entre ambos.
La transmisión de eventos también es una tecnología fundamental para crear arquitecturas basadas en eventos.
Una arquitectura basada en eventos permite que los componentes débilmente acoplados se comuniquen a través de eventos. En lugar de publicar secuencias de eventos en un agente, publica un evento de un solo propósito que otra aplicación o servicio puede utilizar para realizar acciones a su vez. La capacidad de procesamiento en tiempo real que ofrecen las arquitecturas basadas en eventos, utilizadas junto con funciones de transmisión de eventos, puede permitir a las empresas responder a los datos en movimiento y tomar decisiones rápidas basadas en todos los datos actuales e históricos.
En los últimos años, los proveedores de nube (incluido IBM Cloud) han comenzado a ofrecer los principios de la transmisión de eventos como servicios. La transmisión de eventos como servicio facilita a las empresas la adopción de la transmisión de eventos sin gestionar toda la infraestructura subyacente, lo que amplía aún más los casos de uso del streaming de eventos.
IBM Event Automation es una solución componible para ayudar a acelerar los esfuerzos de las empresas centrados en los sucesos con capacidades de distribución, descubrimiento y procesamiento de sucesos.
Vaya más allá de la simple automatización de tareas para gestionar procesos de alto perfil, orientados al cliente y generadores de ingresos con adopción y escala integradas.
Descubra cómo la IA para operaciones de TI ofrece los conocimientos que necesita para ayudar a impulsar un rendimiento empresarial excepcional.