Publicado: 30 de abril de 2024
Colaboradores: Chrystal R. China, Michael Goodwin

¿Qué es el event streaming?

El event streaming 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 análisis e informes de analytics en tiempo real.

Una función clave en el procesamiento de Event Streams (ESP) es que permite a las infraestructuras de TI manejar grandes flujos continuos de eventos mediante el procesamiento de datos cuando ocurre el evento o cambio.

El event streaming a menudo sirve como 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 datos en lotes, el event streaming procesa puntos de datos individuales a medida que emergen para que el software dentro de la arquitectura pueda interpretar y responder a flujos de datos (“datos en movimiento”) en tiempo real.

Los servicios de event streaming de alto rendimiento pueden impulsar una variedad 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, el event streaming puede agregar profundidad al analytics de datos al conectar eventos con sus respectivas marcas de tiempo e identificar tendencias históricas.

¿Qué es un evento?

El event streaming 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 cada punto de datos en el sistema. Por lo tanto, un "flujo" (también llamado flujo de datos o transmisión de datos) es la entrega continua de esos eventos.

Cada evento generalmente incluye una clave que identifica el evento o la entidad a la que pertenece, un valor que contiene los datos reales del evento, una marca de tiempo que indica cuándo ocurrió o se registró el evento y, a veces, metadatos sobre la fuente de datos, la versión del esquema u otro atributo.

Con la ayuda de motores especializados de procesamiento de transmisiones, los eventos pueden someter a algunos procesos diferentes dentro de una transmisión. Las "agregaciones" realizan cálculos de datos, como medias, sumas y desviación estándar. La "ingestión" agrega datos de transmisión a las bases de datos. El procesamiento de analytics emplea patrones en la transmisión de datos para predecir eventos futuros, y el procesamiento de enriquecimiento combina puntos de datos con otras fuentes para brindar contexto y crear significado.

Los eventos suelen estar vinculados a las operaciones comerciales o a los procesos de navegación del usuario y, por lo general, desencadenan otra acción, proceso o serie de eventos. Tomemos como ejemplo la banca en línea.

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 agregan 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 despliegan protocolos de seguridad y prevención de fraude.

Componentes clave del event streaming

Los eventos son, por supuesto, el componente central del event streaming; sin embargo, una serie de otros componentes permiten que los servicios de transmisión procesen eventos de manera tan rápida y efectiva como lo hacen. Otros componentes vitales incluyen:

Intermediarios

Los intermediarios, o intermediarios de mensajes, son los servidores que ejecutan plataformas de event streaming. Los intermediarios de mensajes permiten que las aplicaciones, los sistemas y los servicios se comuniquen entre sí e intercambien información convirtiendo mensajes entre protocolos de mensajería formales. Esto permite que los servicios interdependientes "hablen" entre sí directamente, incluso si están escritos en diferentes lenguajes (como Java o Python) o implementados en diferentes plataformas. Además, facilita el desacoplamiento de procesos y servicios dentro de los sistemas.

Los intermediarios pueden validar, almacenar, enrutar y entregar mensajes a los destinos apropiados. En los sistemas de event streaming distribuidos, los intermediarios garantizan baja latencia y alta disponibilidad al replicar eventos en múltiples nodos. Los intermediarios también pueden formar clústeres, que son conjuntos de intermediarios que trabajan juntos para facilitar el equilibrio de carga y la escalabilidad.

Temas

Los temas son categorizaciones o nombres de feeds en los que se publican eventos, lo que proporciona una forma de organizar y filtrar eventos dentro de la plataforma. Actúan como el "tema" de los eventos, lo que permite a los consumidores suscribirse a los temas y recibir solo eventos relevantes.

Particiones

Los temas se pueden dividir en partes, lo que permite que varios consumidores lean un tema simultáneamente sin alterar el orden de cada parte.

Compensaciones

Un desplazamiento es un identificador único para cada evento dentro de una parte, que marca la posición de un evento dentro de la secuencia. Los consumidores emplean compensaciones para organizar los eventos que procesaron. Si, por ejemplo, un consumidor se desconecta de un evento y luego se vuelve a conectar, puede reanudar el procesamiento desde la última compensación conocida.

¿Cómo funciona el event streaming?

Dada la proliferación de datos, y el consiguiente aumento del tráfico de datos, el event streaming es un componente esencial de las arquitecturas de datos modernas, especialmente en entornos que requieren capacidades de toma de decisiones ultra rápidas o en organizaciones que buscan automatizar las responsabilidades de toma de decisiones.

Así es como los servicios de streaming de eventos gestionan los datos de eventos:

  1. Generación de eventos. El event streaming comienza cuando los productores (microservicios, sistemas de backend, ecosistemas de IoT o APIbasadas en eventos, por ejemplo) envían eventos a la plataforma de streaming de eventos.

  2. Publicación de eventos. Mediante bibliotecas de clientes, los productores publican el evento en un tema específico dentro de la plataforma, momento en el que pasan a estar disponibles para los consumidores (las aplicaciones y servicios que se suscriben al tema).   

  3. Almacenamiento de eventos. La plataforma almacena los eventos durante un periodo predeterminado o hasta que se consuman, y los intermediarios gestionan los procesos de almacenamiento y recuperación de eventos.

  4. Consumo de eventos. Los consumidores procesan datos de eventos para iniciar otros eventos. Dependiendo de su propósito o configuración, pueden actuar sobre los eventos inmediatamente a medida que llegan (procesamiento en tiempo real), almacenarlos para su posterior procesamiento o compilarlos para el procesamiento por lotes. Los consumidores también rastrean su posición en el proceso de datos mediante el uso de compensaciones, para que puedan reanudar el procesamiento desde donde lo dejaron, en caso de falla o resetearlo.

  5. Entrega de eventos. El agente de eventos ofrece eventos a todos los consumidores suscritos. La semántica de entrega puede incluir entrega "al menos una vez" (donde se garantiza que los eventos se entregarán pero pueden duplicarse), entrega "exactamente una vez" (donde cada evento se entrega una vez y solo una vez) u otro tipo de semántica.

  6. Procesamiento de eventos. Una vez que se consume y entrega el evento inicial, los datos del evento se procesan para varias acciones posteriores, incluida la transformación de los datos, su agregación y la activación de flujos de trabajo complejos de procesamiento de eventos (CEP).
Características del event streaming

Además de la transmisión y el procesamiento estándar, las plataformas de event streaming (como Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM Event Automation, que emplea la potencia de procesamiento de la plataforma Apache Kafka de código abierto) facilitan una variedad de prácticas de transmisión que aumentan la funcionalidad.

Procesamiento de una sola vez

La semántica de entrega exacta garantiza que cada evento de una transmisión se procese exactamente una vez, una característica esencial para evitar eventos de transmisión duplicados y perdidos. La mayoría de los sistemas de event streaming incluyen mecanismos para proporcionar una semántica exactamente una vez, independientemente de las fallas en otras partes del sistema.

Contrapresión

Cuando los componentes posteriores no pueden seguir el ritmo de la tasa de eventos entrantes, la contrapresión evita que los flujos saturen el sistema. Con la contrapresión, un mecanismo de control del flujo de datos, los consumidores pueden indicar a los productores que limiten o detengan la producción de datos cuando están abrumados con el procesamiento de datos o no pueden seguir el ritmo de los eventos emergentes.

Este proceso permite que los sistemas manejen con habilidad las cargas de trabajo almacenando en búfer o descarten eventos entrantes, en lugar de interrumpir todo el sistema, para que el procesamiento de eventos permanezca estable a medida que fluctúan las cargas de trabajo.

Grupos de consumidores

Los consumidores de eventos a menudo trabajan 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 partes a procesar, lo que empareja el consumo para una mayor eficiencia. Si un consumidor dentro del grupo falla o necesita ser agregado o eliminado, la plataforma puede reasignar particiones dinámicamente para mantener el equilibrio y la tolerancia a las fallas.

Marca de agua

El event streaming a menudo significa procesar datos de manera urgente. La marca de agua permite el seguimiento del progreso (mediante el tiempo del evento) en los sistemas de procesamiento de flujo; impone un umbral de integridad que indica cuándo el sistema puede considerar que los datos de eventos se procesaron por completo. 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 fuera de orden.

Conservación y compactación de datos

La mayoría de las plataformas de event streaming ofrecen políticas de conservació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 el footprint de almacenamiento mínima y preservando los datos esenciales.

Vale la pena señalar, nuevamente, 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 puedan escalar y mantener de forma independiente.  

Casos de uso de event streaming

El event streaming es un concepto poderoso que permite a las organizaciones emplear los datos a medida que se generan, creando sistemas más receptivos e inteligentes. Con el auge de la toma de decisiones basada en datos, el event streaming es un componente cada vez más importante en las arquitecturas de software modernas.

Como tal, las tecnologías de streaming de eventos tienen una variedad de casos de uso en todos los sectores empresariales, que incluyen:

Banca y servicios financieros

Las instituciones financieras pueden emplear servicios de event streaming para procesar datos del mercado en tiempo real, lo que permite que los sistemas de comercio algorítmico tomen decisiones en fracciones de segundo según las condiciones del mercado actualizadas. Las capacidades de monitoreo en tiempo real del event streaming también ayudan a las instituciones a identificar y abordar rápidamente el fraude y los riesgos de seguridad.

Manufactura

El event streaming puede facilitar la optimización de la cadena de suministro al permitir que los fabricantes realicen 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 gerentes pueden predecir cuándo y por qué el equipo podría fallar y realizar mantenimiento preventivo o predictivo para evitar tiempos de inactividad no planeados.

Juegos y entretenimiento

Las plataformas de juegos en línea pueden emplear los servicios de streaming de eventos para realizar un seguimiento de las acciones de los jugadores y los cambios en el estado del juego, lo que puede emplearse para ejecutar un análisis del juego, aplicar políticas anti trampas y aumentar la participación de los jugadores. Las plataformas de streaming pueden aprovechar los datos de los eventos para ofrecer recomendaciones de contenidos personalizadas a los usuarios y crear una experiencia de cliente a la medida.

Transporte y logística

El event streaming se puede emplear 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. Las compañías de logística pueden emplear de manera similar los datos de eventos de dispositivos de escaneo y rastreadores GPS para proporcionar a los clientes actualizaciones en tiempo real sobre el estado de sus entregas de comercio electrónico.

Uso en arquitecturas basadas en eventos y otros patrones

Más allá de industrias específicas, el event streaming también puede ser útil cuando se implementa en conjunto con otras tecnologías y arquitecturas. Por ejemplo, el event streaming a veces se asocia con patrones como el abastecimiento de eventos y la segregación de responsabilidad de consulta 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 event streams, el abastecimiento de eventos permite que el sistema de transmisión reproduzca 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 maneja comandos (escritura) y otro que maneja consultas (lectura). El event streaming se puede emplear en CQRS para propagar cambios del modelo de escritura al modelo de lectura en tiempo real, lo que permite la integración asíncrona entre los dos.

El event streaming 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, pero en lugar de publicar flujos de eventos a un corredor, publica un evento de un solo propósito que otra aplicación o servicio puede usar para realizar acciones a su vez. La potencia de procesamiento in-stream proporcionada por las arquitecturas basadas en eventos,empleada junto con las capacidades de streaming de eventos, puede permitir a las compañías 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 la nube (incluido IBM Cloud) comenzaron a ofrecer los principios del streaming de eventos como servicios. El event streaming como servicio facilita a las compañías la adopción del event streaming sin gestionar toda la infraestructura subyacente, lo que amplía aún más los casos de uso del event streaming.

Productos relacionados
IBM Event Automation

IBM Event Automation es una solución totalmente componible que permite a las empresas acelerar sus esfuerzos impulsados por eventos, dondequiera que se encuentren en su viaje. Las capacidades de distribución, gestión de endpoints y procesamiento de eventos ayudan a sentar las bases de una arquitectura basada en eventos para desbloquear el valor de los eventos.

Explore IBM Event Automation

IBM Cloud Pak for Integration

IBM Cloud Pak for Integration utiliza la plataforma de streaming de eventos de código abierto creada por Apache Kafka de <a IBM Event Streams de IBM para ayudarle a crear aplicaciones inteligentes que pueden reaccionar a los eventos a medida que ocurren. Gestione las cargas de trabajo de misión crítica mediante una conectividad de sistemas mejorada, implementación y operaciones enriquecidas y una experiencia en arquitectura que se basa en eventos.

Explore IBM Cloud Pak for Integration
Tome Acción ante Eventualidades con IBM App Connect

Orqueste acciones de seguimiento para reaccionar inmediatamente a nuevas eventualidades. App Connect admite arquitecturas impulsadas por eventos y puede aprovechar los mecanismos de sondeo para trabajar con aquellos que no lo hacen. Configure flujos para automatizar tareas y aplicar lógica condicional para agilizar las decisiones, y responder a los requisitos cambiantes de los clientes.

Explore IBM APP Connect

Dé el siguiente paso

IBM Event Automation, una solución totalmente ajustable que ayuda a las empresas a acelerar sus esfuerzos basados en eventos en cualquier parte de su recorrido. Ofrece capacidades de distribución de eventos, descubrimiento de eventos y procesamiento de eventos en una interfaz intuitiva para que tanto los usuarios empresariales como los de TI puedan poner los eventos a trabajar y responder en tiempo real.

Explora la automatización de eventos Reserve una demostración en vivo