Apache Kafka: O Que É e Como Usar em Pipelines de Dados e Streaming
Imagine um sistema de e-commerce durante a Black Friday processando 500 mil eventos por segundo — cliques, atualizações de estoque, confirmações de pagamento, alertas de fraude — tudo em tempo real, sem perder um único evento mesmo que algum serviço downstream esteja temporariamente indisponível. Essa é a promessa central do Apache Kafka: uma plataforma de streaming distribuído que separa quem produz dados de quem os consome, com escala praticamente ilimitada e durabilidade garantida.
Kafka se tornou a espinha dorsal de arquiteturas de dados modernas porque resolve um problema que bancos de dados relacionais e filas de mensagens tradicionais não resolvem bem: o processamento confiável de grandes volumes de eventos em tempo real, com múltiplos consumidores independentes e capacidade de reprodução histórica dos dados.
Este guia explica o que é o Apache Kafka, como funciona sua arquitetura, casos de uso práticos para times de dados e SRE e como o Kafka se posiciona em relação a alternativas como RabbitMQ.
O que é o Apache Kafka
Apache Kafka é uma plataforma distribuída de streaming de eventos de código aberto, originalmente desenvolvida pelo LinkedIn em 2011 e doada à Apache Software Foundation em 2012. Hoje é mantida comercialmente pela Confluent e operada por milhares de empresas globalmente.
A definição técnica mais precisa é: Kafka é um log de eventos distribuído, imutável e ordenado, acessível por múltiplos produtores e consumidores simultaneamente. Cada evento publicado no Kafka é armazenado com durabilidade configurável — pode ser retido por horas, dias ou indefinidamente — e pode ser consumido independentemente por múltiplos sistemas sem que o consumo de um afete os demais.
Essa característica de log distribuído é o que diferencia o Kafka de sistemas de mensageria convencionais: uma mensagem consumida no RabbitMQ desaparece da fila. Um evento consumido no Kafka permanece disponível para outros consumidores e pode ser “replay” a qualquer momento, dentro do período de retenção configurado.
Arquitetura do Kafka: os Componentes Essenciais
Entender a arquitetura do Kafka é fundamental para usá-lo corretamente. Cinco conceitos formam a base de qualquer implementação.
Topics e Partitions
Um topic é o canal lógico de comunicação no Kafka — o equivalente a uma tabela em um banco de dados ou uma fila em um sistema de mensageria. Produtores publicam eventos em topics; consumidores leem de topics.
Cada topic é dividido em partitions (partições), que são a unidade de paralelismo do Kafka. O número de partições determina quantos consumidores podem processar um topic em paralelo. Um topic com 12 partições suporta até 12 consumidores simultâneos no mesmo consumer group, cada um processando um subconjunto dos eventos.
Producers e Consumers
Producers publicam eventos nos topics. Consumers leem eventos das partitions. A chave do design Kafka é que producers e consumers são completamente desacoplados: o producer não sabe quem vai consumir o evento, e o consumer não sabe quando novos eventos serão produzidos.
Consumer groups permitem que múltiplas instâncias de um serviço consumam o mesmo topic em paralelo, com o Kafka garantindo que cada partição é processada por apenas um consumer do grupo. Isso habilita escalonamento horizontal dos consumidores de forma nativa.
Brokers e Clusters
Um broker é um servidor Kafka que armazena os dados das partitions e serve as requisições de producers e consumers. Um cluster Kafka é o conjunto de brokers que opera em conjunto, distribuindo as partitions entre os nós para redundância e performance.
A replicação entre brokers garante que a falha de um nó não resulte em perda de dados. O fator de replicação padrão recomendado é 3: cada partition é armazenada em 3 brokers diferentes, com um broker atuando como líder para aquela partition.
Kafka vs RabbitMQ: Quando Usar Cada Um
A comparação mais frequente é entre Kafka e RabbitMQ, que resolvem problemas diferentes apesar de parecerem similares à primeira vista.
RabbitMQ é um message broker tradicional, otimizado para roteamento complexo de mensagens, processamento individual de tasks e cenários onde a mensagem deve ser destruída após o consumo. É ideal para filas de trabalho (task queues), processamento assíncrono de operações e integração ponto-a-ponto entre serviços.
Kafka é otimizado para streaming de alto volume, múltiplos consumidores independentes e capacidade de replay histórico. É ideal para pipelines de dados, event sourcing, auditoria e cenários onde o evento precisa ser processado por múltiplos sistemas de forma independente.
A regra prática: se você precisa de uma fila com roteamento sofisticado e mensagens temporárias, use RabbitMQ. Se você precisa de um log de eventos persistente e escalável com múltiplos consumidores, use Kafka.
Casos de Uso Práticos do Kafka em Ambientes de TI
O Kafka tem presença consolidada em vários casos de uso que times de dados, SRE e infraestrutura encontram diretamente.
Pipeline de observabilidade: centralizar o fluxo de logs, métricas e traces de múltiplos serviços em um único bus Kafka antes da ingestão nas ferramentas de observabilidade. Isso desacopla a produção de telemetria do backend de armazenamento, permitindo trocar ou adicionar ferramentas de análise sem reconfigurar todos os serviços.
Event sourcing em microsserviços: cada serviço publica eventos de domínio no Kafka. Outros serviços assinam os topics relevantes e reagem de forma assíncrona. O resultado é desacoplamento total entre os serviços e capacidade de reconstruir o estado de qualquer serviço reproduzindo os eventos históricos.
Change Data Capture (CDC): capturar alterações em bancos de dados relacionais e publicá-las no Kafka em tempo real. Permite sincronizar dados entre sistemas heterogêneos, alimentar data warehouses e disparar workflows baseados em mudanças de dados sem polling no banco.
Streaming analytics: processar eventos em tempo real com ferramentas como Apache Flink ou Kafka Streams para detectar anomalias, calcular métricas de negócio em tempo real e acionar alertas baseados em padrões de comportamento.
Monitoramento de Kafka em Produção
Operar Kafka em produção exige monitoramento dedicado de métricas específicas da plataforma. As mais críticas para times de SRE são:
Consumer Lag: a métrica mais importante do Kafka. Representa o atraso entre o offset do último evento produzido e o offset do último evento consumido por um consumer group. Lag crescente indica que os consumidores não estão acompanhando a taxa de produção — um sinal de alerta para escalonamento ou investigação de gargalos. Ferramentas como Prometheus com o exporter do Kafka Lag Exporter fornecem essa métrica em tempo real.
Under-replicated partitions: partições com menos réplicas do que o fator de replicação configurado. Indica falha de broker ou problema de replicação — condição que aumenta o risco de perda de dados.
Request latency: latência das operações de produce e fetch. Aumento súbito indica saturação de I/O nos brokers ou pressão de rede no cluster.
Disk usage por broker: Kafka armazena todos os eventos em disco. Monitorar o uso de disco por broker e configurar alertas antes de atingir thresholds críticos é fundamental para evitar interrupções por falta de espaço.
A integração do monitoramento do Kafka com a estratégia de gerenciamento de logs e observabilidade do ambiente garante visibilidade completa do pipeline de dados de ponta a ponta.
Conclusão
O Apache Kafka se tornou componente central de arquiteturas de dados modernas porque resolve o problema do streaming de alto volume com durabilidade, escala e desacoplamento de produtores e consumidores. Para times de dados, é a fundação de pipelines de ingestão e event sourcing. Para times de SRE, é a infraestrutura de telemetria que alimenta sistemas de observabilidade em larga escala.
A curva de adoção do Kafka exige atenção ao dimensionamento de partições, configuração de replicação e monitoramento de consumer lag. Com esses pilares operacionais bem estabelecidos, o Kafka entrega a confiabilidade e a performance que justificam sua posição como padrão de mercado em streaming de eventos.
Se sua organização está avaliando Kafka para pipelines de dados ou observabilidade em larga escala, fale com nossos especialistas.
