Software · Arquitetura & Engenharia de Dados
Azure Event Hubs: Partições, Streaming e Replay de Telemetria
Como o Azure Event Hubs recebe fluxos volumosos, distribui dados em partições e permite replay por grupos de consumidores sem funcionar como fila transacional.
Porta de entrada para fluxos contínuos
Azure Event Hubs é um serviço de ingestão voltado a telemetria e streams de alto volume. Aplicações, dispositivos e agentes publicam sequências de registros; processadores leem essas sequências, mantêm sua posição e podem repetir uma janela ainda retida. O serviço absorve picos e desacopla a velocidade dos produtores da capacidade momentânea dos consumidores.
Ler um evento não o remove do hub. Vários pipelines percorrem o mesmo histórico de forma independente, o que favorece telemetria IoT, logs, atividade de usuários e alimentação de plataformas analíticas.
Partições definem paralelismo e ordem
Cada hub possui partições que funcionam como logs ordenados. Um evento recebe um offset dentro da partição; consumidores avançam a partir de uma posição conhecida. A ordem existe dentro da partição, não no hub inteiro.
Uma chave de partição mantém eventos relacionados juntos. Isso ajuda a preservar a ordem de uma entidade, mas uma chave concentrada cria ponto quente. Sem requisito de afinidade, a distribuição automática tende a usar melhor a capacidade.
flowchart LR
P1["Sensores"] --> Hub["Azure Event Hubs"]
P2["Aplicações"] --> Hub
Hub --> A["Partição 0"]
Hub --> B["Partição 1"]
Hub --> C["Partição 2"]
A --> G1["Consumer group Analytics"]
B --> G1
C --> G1
A --> G2["Consumer group Arquivamento"]
B --> G2
C --> G2
Mais partições permitem paralelismo, porém ampliam coordenação e custo dos processadores. A escolha deve considerar throughput, quantidade de leitores e fronteira de ordenação.
Consumer groups e checkpoints
Um consumer group representa uma visão independente do stream. Analytics e arquivamento usam grupos diferentes e mantêm posições próprias. Dentro do mesmo grupo, instâncias cooperam para dividir partições.
O checkpoint registra até onde o consumidor concluiu. Confirmá-lo antes do efeito durável pode perder processamento; confirmá-lo depois pode repetir eventos durante a recuperação. O desenho seguro aceita repetição e torna o destino idempotente com chaves de negócio, upsert ou deduplicação.
| Elemento | Responsabilidade |
|---|---|
| Partição | Unidade de ordem e paralelismo |
| Offset | Posição de um evento no log |
| Consumer group | Leitura independente do mesmo stream |
| Checkpoint | Progresso durável do processador |
| Retenção | Janela disponível para replay |
| Capture | Exportação periódica para armazenamento |
Retenção, replay e Capture
Retenção permite corrigir um processador e reler eventos recentes. Não substitui um repositório histórico: para conservação longa, auditoria ou consulta analítica, os dados precisam chegar a um data lake ou armazenamento apropriado. Event Hubs Capture pode descarregar o fluxo em lotes, reduzindo a necessidade de um consumidor exclusivo para arquivamento.
O endpoint compatível com o protocolo Kafka permite reutilizar clientes, mas não transforma o serviço em um cluster Kafka autogerenciado. Limites, administração e capacidade continuam sendo características do Event Hubs.
A comparação oficial de mensageria do Azure posiciona Event Hubs como streaming; Event Grid atende eventos discretos e Service Bus, mensagens corporativas.
Operar o stream como produto de dados
Além de latência e taxa de entrada, monitore atraso do consumidor, falhas, distribuição entre partições e tempo restante de retenção. Um consumidor ativo que não acompanha o volume pode perder a janela antes de se recuperar.
Esquemas versionados e compatibilidade retroativa reduzem quebras entre produtores e leitores. Event Hubs resolve a espinha dorsal da ingestão; a confiabilidade do pipeline nasce da combinação entre partição bem escolhida, checkpoint correto, destino idempotente e observabilidade do atraso.