Pergunta 2 de 50
Qual problema o Kafka resolve?
Pergunta
"Qual problema, na prática, o Kafka resolve? Por que não simplesmente chamar os outros serviços via HTTP?"
O que o entrevistador quer avaliar
Quer ver se você entende a motivação por trás da arquitetura orientada a eventos, não apenas o funcionamento técnico do Kafka. É comum candidatos saberem operar Kafka sem conseguir articular o problema de negócio que ele resolve.
Resposta rápida
Kafka resolve o problema de acoplamento: quando um evento de negócio interessa a múltiplos sistemas, chamar cada um via HTTP síncrono cria dependência direta entre o produtor e todos os consumidores, e cada novo consumidor exige alterar o produtor. Kafka desacopla isso — o produtor publica uma vez, e qualquer número de consumidores lê de forma independente.
Resposta nível Sênior
Em sistemas com poucos serviços, chamadas síncronas resolvem bem. O problema aparece quando um mesmo evento de negócio — por exemplo, "pagamento aprovado" — passa a interessar a múltiplos sistemas: notificação, antifraude, contabilidade, analytics. Se o serviço de pagamentos chamar cada um diretamente, ele fica acoplado à disponibilidade de todos eles, e adicionar um novo consumidor exige alterar o código do produtor. Kafka resolve isso invertendo o modelo: o produtor publica o evento uma única vez em um tópico e segue em frente; cada consumidor interessado lê esse evento no seu próprio ritmo, sem que o produtor precise saber que ele existe. Isso desacopla tanto tecnicamente (falha de um consumidor não derruba o produtor) quanto organizacionalmente (times evoluem seus consumidores sem coordenar deploy com o time do produtor).
Explicação aprofundada
Veja "O problema antes do Kafka" no Capítulo 1 para o racional completo, incluindo por que isso não é primariamente uma questão de performance, mas de acoplamento.
Exemplo financeiro
Antes do Kafka, adicionar um sistema de cashback que reage a "compra aprovada" exigiria alterar o
serviço de autorização de cartão para chamá-lo diretamente. Com Kafka, o time de cashback
simplesmente cria um novo consumer no tópico compras.aprovadas — o serviço de autorização não
muda uma linha.
"Kafka resolve o problema de volume/performance"
Volume é uma consequência do desenho, não o motivo original. Um sistema pode ter Kafka mesmo com volume moderado, só porque tem muitos consumidores independentes do mesmo evento — o problema central é acoplamento, não apenas throughput.
Pode vir a seguir
Prepare-se para: "isso não poderia ser resolvido com uma fila?" e "me dê um exemplo real onde você viu esse acoplamento virar problema".
Capítulos relacionados