Pular para o conteúdo principal

Pergunta 20 de 50

Kafka garante ordenação global?

PlenoSêniorTech Lead

Pergunta

"O Kafka garante ordenação global entre todas as mensagens de um tópico?"

O que o entrevistador quer avaliar

É a pegadinha clássica de Kafka. Testa se o candidato responde "sim" de forma automática (errado) ou entende a ressalva de partition o suficiente para responder com precisão.

Resposta rápida

Não. O Kafka garante ordenação apenas dentro de cada partition. Um tópico com múltiplas partitions não tem ordem global entre elas — duas mensagens em partitions diferentes não têm relação de ordem definida entre si, mesmo que tenham sido escritas com poucos milissegundos de diferença.

Resposta nível Sênior

"Ordenado" não é uma propriedade binária do tópico — é uma propriedade de cada partition individualmente. Se um tópico tem uma única partition, ele de fato tem ordem total, porque só existe uma sequência. Mas assim que o tópico tem mais de uma partition (o caso comum em produção, para viabilizar paralelismo), a ordem global deixa de existir por design: são múltiplos logs independentes, cada um com seu próprio relógio de offsets. A única ordem garantida é entre mensagens que compartilham a mesma key, porque a key fixa a mensagem em uma única partition (Capítulo 4). Isso é uma escolha de design deliberada — trocar ordenação global por paralelismo — não uma limitação acidental.

Explicação aprofundada

Veja "Ordenação dentro da partition — e a ausência de ordenação global" no Capítulo 4.

Exemplo financeiro

Um evento "compra aprovada" do cliente A e um evento "compra aprovada" do cliente B, publicados quase ao mesmo tempo em partitions diferentes, não têm relação de ordem entre si — o que é perfeitamente aceitável, porque eventos de clientes diferentes não têm dependência real entre si.

"Sim, o Kafka garante ordenação, é uma fila"

Essa resposta ignora completamente o efeito das partitions. É exatamente o tipo de resposta que revela que o candidato não entende a estrutura interna do Kafka — só decorou que "mensageria implica ordem".

Pode vir a seguir

Prováveis follow-ups: "e se eu precisar de ordenação global de verdade, como eu faria?" (resposta: uma única partition, aceitando o custo de perder paralelismo) e "o que é um Consumer?".

Capítulos relacionados