Pergunta 5 de 50
Quando não escolher Kafka?
Pergunta
"Você mencionou Kafka como boa escolha em vários cenários — quando você não usaria?"
O que o entrevistador quer avaliar
Maturidade arquitetural. Candidatos que só sabem defender a ferramenta que dominam soam como fãs, não como arquitetos. Saber articular os limites do Kafka é tão importante quanto saber seus benefícios.
Resposta rápida
Não uso Kafka para comunicação request/response onde preciso de uma resposta imediata — isso é papel de chamada síncrona. Também evito em sistemas pequenos, com baixo volume, onde a complexidade operacional de um cluster não se paga, e quando o time não tem maturidade para operar um sistema distribuído com estado.
Resposta nível Sênior
Três cenários principais. Primeiro, comunicação síncrona genuína — se preciso autorizar uma transação de cartão e retornar aprovado/negado na mesma requisição HTTP, um evento assíncrono não serve; isso é papel de uma chamada direta (REST/gRPC) com timeout curto. Segundo, sistemas pequenos — um serviço com dois ou três consumidores de baixo volume raramente justifica o custo operacional de manter partições, réplicas e monitoramento de um cluster; uma fila simples ou até uma tabela de outbox processada por cron resolve com menos esforço. Terceiro, maturidade operacional — Kafka introduz falhas que uma equipe sem experiência em sistemas distribuídos vai levar tempo para diagnosticar: rebalance mal compreendido, partição mal dimensionada, lag crescendo sem alerta. Introduzir Kafka sem essa maturidade tende a criar mais incidentes do que resolve.
Explicação aprofundada
Veja "Quando não utilizar" e "Limitações" no Capítulo 1.
Exemplo financeiro
Autorizar uma compra no ponto de venda (POS) precisa de resposta em milissegundos — o fluxo síncrono de autorização não deve depender de Kafka. Mas, depois da autorização aprovada, o evento resultante ("compra autorizada") pode perfeitamente ser publicado no Kafka para notificação, cashback e antifraude assíncronos.
"Kafka sempre é a escolha certa para desacoplar sistemas"
Essa resposta ignora custo operacional e casos de comunicação síncrona genuína. Um bom entrevistador vai notar a ausência de nuance imediatamente.
Pode vir a seguir
Pode vir a seguir: "como você decidiria entre Kafka e uma fila mais simples nesse caso pequeno?" e "que incidente você já viu (ou imagina) causado por falta de maturidade operacional com Kafka?".
Capítulos relacionados