Kafka Partitions são divisões de um tópico no Apache Kafka.
Elas permitem paralelismo, distribuição e ordenação local.
Kafka Partitions aparece quando sistemas precisam conversar sem ficarem grudados um no outro. Mensageria serve para desacoplar, absorver picos e lidar melhor com falhas.
Ao estudar, pense sempre em produtor, consumidor, mensagem, retry e DLQ.
O que é
Kafka Partitions deve ser entendido como comunicação indireta entre partes de uma aplicação. Em vez de um componente depender da resposta imediata de outro, mensagens permitem desacoplar envio, espera, processamento e falha.
Mensageria desacopla produtores e consumidores.
Por que existe
Kafka Partitions existe para desacoplar partes de uma aplicação, absorver variação de carga e permitir comunicação assíncrona ou orientada a eventos. Sem mensageria, componentes ficam mais dependentes do tempo de resposta uns dos outros.
Como funciona
Ordenação
Kafka garante ordem dentro de uma partição, não necessariamente entre partições diferentes.
Chave
A chave do evento pode determinar para qual partição ele vai.
Eventos com a mesma chave podem ir para a mesma partição, preservando ordem por entidade.
Paralelismo
Mais partições permitem mais consumidores em paralelo dentro de um consumer group.
Paralelismo na prática
Partições são a principal unidade de paralelismo em Kafka.
Se um tópico tem dez partições, um consumer group pode ter até dez consumidores trabalhando em paralelo com uma partição por consumidor.
Ordenação por Partição
A ordem é preservada dentro da partição.
Se a ordem por pedido é importante, eventos do mesmo pedido devem usar a mesma chave para cair na mesma partição.
Hot Partitions
Se uma chave concentra tráfego demais, uma partição pode ficar sobrecarregada.
Isso é chamado de hot partition.
Escolher boas chaves é parte essencial do desenho Kafka.
Exemplo prático
Uma API pode receber uma solicitação, publicar uma mensagem em Amazon SQS e responder rapidamente ao usuário. Workers processam a fila depois. Se falharem, mensagens podem ser repetidas ou enviadas para Dead Letter Queue (DLQ).
Em outro cenário, Amazon SNS distribui uma mensagem para vários consumidores, enquanto Amazon EventBridge roteia eventos por padrão.
Diferenças importantes
Como Diferenciar
- SQS é fila.
- SNS é pub/sub.
- EventBridge é barramento de eventos.
- MQ é broker gerenciado.
- MSK é Kafka gerenciado.
- Kinesis é streaming.
Cuidados
Partições demais aumentam complexidade.
Partições de menos limitam paralelismo.
Mensageria exige lidar com duplicidade, ordem, atraso, reprocessamento e observabilidade.
Não basta “colocar na fila”. O consumidor precisa ser idempotente, monitorado e preparado para falhas.
Mensageria exige idempotência, retries, DLQ e observabilidade.