Início

topics

Fluxos de eventos

O que é o fluxo de eventos?
Explore a solução de fluxo de eventos da IBM Inscreva-se para receber atualizações sobre IA
Ilustração com colagem de pictogramas de engrenagem, braço robótico, telefone celular

 

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

O que é o fluxo de eventos?

O fluxo de eventos é a prática de capturar dados em tempo real de aplicações, bancos de dados e dispositivos IoT, transportando-os para diversos destinos para processamento e armazenamento imediato, ou para análise em tempo real e geração de relatórios analíticos.

Sendo uma função chave no processamento de fluxo de eventos (ESP), o fluxo de eventos permite que infraestruturas de TI lidem com grandes fluxos contínuos de eventos, processando os dados no momento em que o evento ou mudança ocorre.

O fluxo de eventos frequentemente complementa o processamento em lote, que atua sobre grandes conjuntos de dados estáticos (ou "dados em repouso"). No entanto, em vez de processar dados em lotes, o fluxo de eventos processa pontos de dados individuais à medida que surgem, permitindo que o software dentro da arquitetura interprete e responda a fluxos de dados ("dados em movimento") em tempo real.

Serviços de fluxo de eventos de alto desempenho podem executar uma série de tarefas simples e complexas, desde o envio de notificações quando os preços de ações ou produtos mudam até a criação de modelos de aprendizado de máquina em tempo real que detectam atividades suspeitas do usuário. Mesmo no caso do processamento em lote, o fluxo de eventos pode adicionar profundidade à análise de dados ao conectar eventos com seus respectivos carimbos de tempo e identificar tendências históricas.

Agende uma demonstração em tempo real

Saiba como o IBM Event Automation pode ajudar você a aproveitar eventos, permitindo que usuários de negócios e TI detectem situações, atuem em tempo real, automatizem decisões e maximizem o potencial de receita.

Conteúdo relacionado Assine a newsletter da IBM
O que é um evento?

O fluxo de eventos gira em torno do fluxo ilimitado, sequencial e em tempo real de registros de dados, chamados "eventos", estruturas de dados fundamentais que registram qualquer ocorrência no sistema ou ambiente. É um termo que essencialmente se refere a cada ponto de dados no sistema. Portanto, um "fluxo" (também chamado de fluxo de dados ou dados em fluxo) é a entrega contínua desses eventos.

Cada evento normalmente inclui uma chave que identifica o evento ou a entidade a que se refere, um valor que contém os dados reais do evento, um timestamp que indica quando o evento ocorreu ou foi registrado e, às vezes, metadados sobre a fonte de dados, versão do esquema ou outro atributo.

Com a ajuda de mecanismos especializados de processamento de fluxos, os eventos podem passar por diferentes processos dentro de um fluxo. As "Agregações" realizam cálculos de dados, como médias, somas e desvio padrão. A "ingestão" adiciona dados em fluxo a bancos de dados. O processamento analítico usa padrões em dados de fluxo para prever eventos futuros, e o processamento de enriquecimento combina pontos de dados com outras fontes para fornecer contexto e gerar significado.

Eventos estão frequentemente ligados a operações de negócios ou processos de navegação do usuário e geralmente desencadeiam outra ação, processo ou série de eventos. Por exemplo, considere o internet banking.

Quando um usuário clica em "transferir" para enviar dinheiro de uma conta bancária para outra, os fundos são retirados da conta do remetente e adicionados à conta do destinatário, notificações por e-mail ou SMS são enviadas para uma ou ambas as partes e, se necessário, protocolos de segurança e prevenção de fraude são implementados.

Principais elementos do fluxo de eventos

Os eventos são, obviamente, o componente central do fluxo de eventos; entretanto, uma série de outros elementos permite que os serviços de fluxo processem eventos de forma tão rápida e eficaz. Outros componentes vitais incluem:

Agentes

Os agentes, ou agentes de mensagens, são os servidores que executam as plataformas de fluxo de eventos. Os agentes de mensagens permitem que aplicações, sistemas e serviços se comuniquem entre si e troquem informações, convertendo mensagens entre protocolos formais de comunicação. Isso permite que serviços interdependentes "conversem" diretamente, mesmo que estejam escritos em diferentes linguagens (como Java ou Python) ou implementados em plataformas distintas. Além disso, facilita o desacoplamento de processos e serviços dentro dos sistemas.

Os agentes podem validar, armazenar, rotear e entregar mensagens aos destinos apropriados. Em sistemas distribuídos de fluxo de eventos, os agentes garantem baixa latência e alta disponibilidade ao replicar eventos em múltiplos nós. Os agentes também podem formar clusters conjuntos de agentes trabalhando juntos para facilitar o balanceamento de carga e a escalabilidade.

Tópicos

Os tópicos são categorizações ou nomes de feeds aos quais os eventos são publicados, oferecendo uma maneira de organizar e filtrar eventos dentro da plataforma. Eles funcionam como o "assunto" dos eventos, permitindo que os consumidores se inscrevam em tópicos e recebam apenas eventos relevantes.

Partições

Os tópicos podem ser subdivididos em partições, permitindo que múltiplos consumidores leiam de um tópico simultaneamente sem interromper a ordem de cada partição.

Compensações

Compensação é um identificador único para cada evento dentro de uma partição, marcando a posição de um evento na sequência. Os consumidores usam compensações para organizar os eventos que já processaram. Se, por exemplo, um consumidor se desconecta de um evento e posteriormente reconecta, ele pode retomar o processamento a partir da última compensação conhecida.

Como funciona o fluxo de eventos?

Com o crescimento exponencial de dados e o aumento no tráfego de informações, o fluxo de eventos é fundamental nas arquiteturas de dados atuais, sobretudo em ambientes que requerem recursos de decisões instantâneas ou em empresas que desejam automatizar a tomada de decisões.

Veja como os serviços de fluxo de eventos gerenciam os dados de eventos:

  1. Geração de eventos. O fluxo de eventos começa quando produtores (microsserviços, sistemas de backend, ecossistemas de IoT ou APIs orientadas a eventos, por exemplo) enviam eventos para a plataforma de event streaming.

  2. Publicação de eventos. Utilizando bibliotecas de clientes, os produtores publicam o evento em um tópico específico dentro da plataforma, momento em que eles se tornam disponíveis para os consumidores (os aplicativos e serviços que se inscrevem nesse tópico).   

  3. Armazenamento de eventos. A plataforma armazena os eventos por um período pré-determinado ou até que sejam consumidos, com agentes gerenciando os processos de armazenamento e recuperação dos eventos.

  4. Consumo do evento. Os consumidores processam dados de eventos para desencadear outros eventos. Dependendo de sua finalidade ou configuração, eles podem agir sobre os eventos imediatamente ao chegarem (processamento em tempo real), armazená-los para processamento posterior ou compilá-los para processamento em lote. Os consumidores também rastreiam sua posição no pipeline de dados usando compensação, permitindo retomar o processamento de onde pararam em caso de falha ou reinicialização.

  5. Entrega de evento. O agente de eventos entrega eventos a todos os consumidores inscritos. As semânticas de entrega podem incluir entrega "pelo menos uma vez" (onde se garante a entrega dos eventos, mas podem ocorrer duplicatas), entrega "exatamente uma vez" (onde cada evento é entregue uma única vez), ou outro tipo de semântica.

  6. Processamento de eventos. Depois que o evento inicial é consumido e entregue, os dados do evento são processados para diversas ações subsequentes, como transformação de dados, agregação e acionamento de fluxos de trabalho complexos de processamento de eventos (CEP).
Funcionalidades do fluxo de eventos

Além do fluxo e processamento padrão, as plataformas de fluxo de eventos (como Amazon Kinesis, Google Pub/Sub, Azure Event Hubs e IBM Event Automation, que utiliza o poder de processamento da plataforma de código aberto Apache Kafka) facilitam diversas práticas de fluxo que aprimoram a funcionalidade.

Processamento único garantido

A semântica de entrega única garante que cada evento em um fluxo seja processado apenas uma vez, um recurso essencial para evitar duplicação e perda de eventos. A maioria dos sistemas de fluxo de eventos inclui mecanismos para oferecer semântica de processamento único, independentemente de falhas em outras partes do sistema.

Contrapressão

Quando os componentes a jusante não conseguem acompanhar a taxa de eventos recebidos, a contrapressão impede que os fluxos sobrecarreguem o sistema. Com a contrapressão, um mecanismo de controle de fluxo de dados, os consumidores podem informar aos produtores para reduzir ou pausar o processamento de dados quando estiverem sobrecarregados ou incapazes de acompanhar os eventos recebidos.

Esse processo permite que os sistemas lidem de forma eficiente com as cargas de trabalho, ao bufferizar ou descartar eventos recebidos, em vez de interromper todo o sistema, mantendo assim o processamento de eventos estável enquanto as cargas de trabalho variam.

Grupos de consumidores

Consumidores de eventos geralmente operam como parte de um grupo de consumidores para acelerar a ingestão de eventos. Cada consumidor dentro de um grupo recebe um subconjunto de partições para processar, paralelizando a consumação para aumentar a eficiência. Se um consumidor do grupo falhar ou precisar ser adicionado ou removido, a plataforma pode realocar as partições de forma dinâmica para manter o equilíbrio e a tolerância a falhas.

Marca d'água

O fluxo de eventos frequentemente implica processar dados de forma sensível ao tempo. A marca d'água possibilita o rastreamento do progresso (com base no tempo do evento) em sistemas de processamento em fluxo; isso define um limiar de completude indicando quando o sistema pode considerar que os dados foram completamente processados. A marca d'água também é útil para garantir precisão no processamento baseado em tempo e para reconciliar eventos fora de ordem.

Retenção e compactação de dados

A maioria das plataformas de fluxo de eventos oferece políticas de retenção de dados personalizáveis, permitindo que os desenvolvedores controlem por quanto tempo os eventos ficam disponíveis para consumo. Entretanto, a compactação de dados consiste em remover informações redundantes ou desatualizadas dos tópicos, minimizando a pegada de carbono do armazenamento sem perder dados importantes.

Vale a pena notar, novamente, que as arquiteturas de streaming padrão normalmente desacoplam produtores de eventos, agentes de eventos e consumidores, para que os componentes possam ser dimensionados e mantidos de forma independente.  

Casos de uso de fluxos de eventos

O fluxo de eventos é um conceito poderoso que permite às organizações utilizarem os dados à medida que são gerados, criando sistemas mais responsivos e inteligentes. Com o avanço da tomada de decisão orientada por dados, o fluxo de eventos torna-se um componente cada vez mais importante nas arquiteturas de software modernas.

Dessa forma, as tecnologias de fluxo de eventos têm uma variedade de casos de uso em diferentes segmentos de negócios, como:

Serviços bancários e financeiros

Instituições financeiras podem utilizar serviços de fluxo de eventos para processar dados do mercado em tempo real, permitindo que sistemas de negociação algorítmica tomem decisões em frações de segundo com base nas condições mais recentes do mercado. Os recursos de monitoramento em tempo real do fluxo de eventos também auxiliam as instituições a identificar e enfrentar rapidamente fraudes e riscos de segurança.

Manufatura (IIoT - Industrial IoT)

O fluxo de eventos pode ajudar na otimização da cadeia de suprimentos, permitindo que fabricantes rastreiem materiais e produtos ao longo do processo para identificar gargalos e ineficiências. Além disso, ao transmitir dados de sensores de IoT/IIoT em máquinas, os gestores podem prever quando e por que equipamentos podem falhar e realizar manutenções preventivas ou preditivas para evitar paradas não planejadas.

Jogos e entretenimento

As plataformas de jogos online podem utilizar serviços de fluxo de eventos para monitorar ações dos jogadores e mudanças na situação do jogo, permitindo análises, aplicação de políticas anti-trapaça e aumento do engajamento dos jogadores. As plataformas de streaming podem utilizar dados de eventos para oferecer recomendações de conteúdo personalizadas e criar uma experiência adaptada ao cliente.

Transporte e logística

O fluxo de eventos pode ser aplicado para rastrear a localização e o status de veículos, permitindo roteamento em tempo real com base no tráfego, cronogramas de entrega e desempenho do veículo. Empresas de logística podem igualmente utilizar dados de eventos de dispositivos de escaneamento e rastreadores GPS para fornecer aos clientes atualizações em tempo real sobre o status de suas entregas de e-commerce.

Aplicação em arquiteturas baseadas em eventos e demais modelos

Além de setores específicos, o fluxo de eventos de eventos também pode ser útil quando implementado junto com outras tecnologias e arquiteturas. Por exemplo, o fluxo de eventos é às vezes associado a padrões como evento de sourcing e segregação de responsabilidade de comando e consulta (CQRS).

O evento sourcing é um modelo de arquitetura onde mudanças no estado da aplicação são registradas como uma série de eventos. Usado em conjunto com fluxo de eventos, o fornecimento de eventos permite que o sistema de streaming reproduza esses eventos para reconstruir o estado de uma entidade a qualquer momento ou para conduzir outros componentes do sistema.

No padrão arquitetural CQRS, o sistema é dividido em dois modelos distintos: um que gerencia comandos (escrita) e outro que trata consultas (leitura). O fluxo de eventos pode ser utilizado no CQRS para propagar mudanças do modelo de escrita para o de leitura em tempo real, permitindo integração assíncrona entre ambos.

O fluxo de eventos também é uma tecnologia fundamental para construir arquiteturas orientadas a eventos.

A arquitetura orientada por eventos possibilita a comunicação entre componentes independentes via eventos, mas ao invés de enviar fluxos de eventos para um agente, ela publica um evento específico que outro app ou serviço pode utilizar para executar ações. O poder de processamento em fluxo fornecido pelas arquiteturas orientadas por eventos, quando usado com recursos de fluxo de eventos, pode permitir que empresas respondam a dados em movimento e tomem decisões rápidas com base em dados atuais e históricos.

Nos últimos anos, provedores de nuvem (incluindo a IBM Cloud) começaram a oferecer os princípios do fluxo de eventos como serviços. O fluxo de eventos como serviço facilita a adoção dessa tecnologia pelas empresas sem a necessidade de gerenciar toda a infraestrutura subjacente, ampliando ainda mais os casos de uso.

Produtos relacionados
IBM Event Automation

O IBM Event Automation é uma solução totalmente componível que permite às empresas acelerar suas iniciativas orientadas a eventos, independentemente de onde estejam em sua jornada. Os recursos de fluxos de eventos, gerenciamento de endpoints de eventos e processamento de eventos ajudam a estabelecer a base de uma arquitetura baseada em eventos para liberar o valor dos eventos.

Explore o IBM Event Automation

IBM Cloud Pak for Integration

O IBM Cloud Pak® for Integration utiliza a plataforma de fluxo de eventos desenvolvida com Apache Kafka de código aberto, o IBM Event Streams, para ajudar você a desenvolver aplicações inteligentes que reagem aos eventos em tempo real. Manipule cargas de trabalho críticas por meio de conectividade de sistema, implementação e operações detalhadas melhores e de uma experiência em arquitetura baseada em eventos.

Explore o IBM Cloud Pak for Integration
Intervenha nos eventos com o IBM App Connect

Organize ações de acompanhamento para reagir imediatamente a novos eventos. O App Connect é compatível com arquiteturas voltadas para eventos e pode utilizar mecanismos de pesquisas para trabalhar com as que não são. Configure fluxos para automatizar tarefas e aplicar a lógica condicional para simplificar as decisões e responder às mudanças nas necessidades do cliente.

Conheça o IBM APP Connect

Recursos Arquitetura orientada por eventos versus fluxo de eventos

Qual é a diferença, como podem beneficiá-lo e qual é a opção ideal para o seu negócio?

Apache Kafka e Apache Flink: uma combinação de código aberto perfeita

O processamento em fluxo é essencial para dados em tempo real. Ele permite que sua empresa absorva fluxos contínuos de dados em tempo real e os coloque em destaque para análise, possibilitando acompanhar mudanças constantes.

Explorando a arquitetura baseada em eventos

As organizações que adotam mais a orientação por eventos conseguem se diferenciar melhor dos concorrentes e, em última análise, influenciar seus resultados financeiros.

Saiba como a especificação AsyncAPI pode descrever e documentar tópicos do Kafka.

IA em tempo real e processamento de eventos

Ao aproveitar a IA para o processamento de eventos em tempo real, as empresas podem conectar eventos díspares para detectar e responder a novas tendências, ameaças e oportunidades.

O que é gerenciamento de dados?

Gerenciamento de dados é a prática de ingerir, processar, proteger e armazenar os dados de uma organização, onde eles são então utilizados para a tomada de decisões estratégicas para melhorar os resultados de negócios.

Dê o próximo passo

O IBM Event Automation, solução totalmente combinável, possibilita que as empresas acelerem seus esforços baseados em eventos, onde quer que se encontrem em sua jornada. Ele oferece recursos de distribuição, descoberta e processamento de eventos em uma interface intuitiva, permitindo que tanto os usuários de negócios quanto de TI possam colocar os eventos em prática e responder em tempo real.

Explore a automação de eventos Agende uma demonstração em tempo real