Pergunta 3 de 50
Kafka é uma fila?
Pergunta
"Kafka é basicamente uma fila de mensagens, só que mais rápida?"
O que o entrevistador quer avaliar
É praticamente um teste de superficialidade. Quem responde "sim, mais ou menos" costuma não ter internalizado a diferença entre distribuir trabalho e compartilhar fatos — e essa distinção aparece de novo em quase toda pergunta seguinte da entrevista.
Resposta rápida
Não estruturalmente. Uma fila tradicional remove a mensagem depois que ela é processada — ela existe para ser entregue a um único consumidor e desaparecer. No Kafka, o evento continua no log depois de lido, até expirar pela política de retenção, o que permite múltiplos consumidores independentes lerem o mesmo dado e reprocessarem o histórico quando necessário.
Resposta nível Sênior
Tecnicamente dá para usar Kafka como fila — um Consumer Group já distribui partitions entre workers, similar ao que uma fila faz. Mas reduzir o Kafka a isso ignora a metade mais importante do desenho: o mesmo evento pode ser lido por múltiplos Consumer Groups completamente independentes, sem duplicar a mensagem, e cada grupo mantém seu próprio ponto de leitura. Além disso, a mensagem não desaparece ao ser consumida — ela permanece no log até a retenção expirar, o que viabiliza replay: reprocessar um intervalo de eventos para corrigir um bug ou popular um sistema novo. Uma fila clássica (RabbitMQ, SQS) não tem esse conceito nativo.
Explicação aprofundada
Veja "Kafka não é apenas uma fila" no Capítulo 1 e a comparação completa no Capítulo 2.
Exemplo financeiro
O evento FaturaFechada pode ser lido pelo serviço de cobrança (que gera o boleto) e, meses
depois, por um novo serviço de analytics que precisa reconstruir o histórico de faturas dos
últimos 90 dias — bastando configurar um novo Consumer Group e resetar o offset para o início da
retenção. Numa fila tradicional, esse histórico já teria sido descartado.
"Sim, é uma fila mais rápida e escalável"
Isso descreve apenas o aspecto de throughput, ignorando retenção, múltiplos consumidores independentes e replay — que são as diferenças que realmente importam em uma entrevista técnica.
Pode vir a seguir
Provável follow-up: "então quando você usaria uma fila em vez de Kafka?" e "como o Kafka consegue reler mensagens já consumidas?".
Capítulos relacionados