Pergunta 14 de 50
O que é uma Partition?
Pergunta
"O que é uma Partition no Kafka?"
O que o entrevistador quer avaliar
Se você entende partition como a unidade real de armazenamento, ordenação e paralelismo — a peça mais citada em praticamente toda pergunta subsequente sobre Kafka.
Resposta rápida
Partition é uma subdivisão ordenada e imutável de um tópico — o log físico propriamente dito. Cada partition é uma sequência de registros identificados por um offset crescente, armazenada em um broker (com réplicas em outros brokers, quando o replication factor é maior que 1).
Resposta nível Sênior
Uma partition é um log append-only: novos registros são sempre adicionados ao final, nunca alterados in-place, cada um identificado por um offset local àquela partition. É a unidade que viabiliza paralelismo de consumo (cada partition é lida por um único consumer dentro de um Consumer Group) e escalabilidade de escrita (partitions de um mesmo tópico podem residir em brokers diferentes). A key de uma mensagem (Capítulo 4) determina, via hash, em qual partition ela é armazenada — e é essa decisão que define quais eventos ficam ordenados entre si.
Explicação aprofundada
Veja "Partition" no Capítulo 3 e o aprofundamento sobre ordenação no Capítulo 4.
Exemplo financeiro
No tópico pix.recebido, a partition de destino de cada evento é determinada pelo hash do contaId — todos
os eventos da mesma conta caem na mesma partition, preservando a ordem relativa entre eles.
"Mais partitions é sempre melhor"
Mais partitions aumentam o paralelismo máximo, mas também o overhead de metadados do cluster, o tempo de rebalance e o número de file handles por broker. O número certo é dimensionado pelo throughput-alvo e pelo número de consumers que o time pretende escalar — não por um valor arbitrário "para garantir".
Pode vir a seguir
Prováveis follow-ups: "por que existem Partitions?" e "como o Kafka escolhe uma Partition para uma mensagem?".
Capítulos relacionados