Pergunta 8 de 50
Kafka versus Google Pub/Sub
Pergunta
"Você conhece o Google Pub/Sub? Como ele se compara ao Kafka?"
O que o entrevistador quer avaliar
Menos comum que RabbitMQ/SQS, mas aparece em empresas com stack GCP. Avalia se você entende que "gerenciado" não é sinônimo de "idêntico ao Kafka" e se sabe onde a semântica diverge.
Resposta rápida
Google Pub/Sub é um serviço de pub/sub totalmente gerenciado, com retenção configurável (até 31 dias) e suporte a replay via seek. A diferença central é que ele não tem o conceito de partition/offset do Kafka — ordenação é opcional, via ordering key, e tem custo de throughput quando ativada. É operacionalmente o mais próximo de "Kafka sem operar cluster", mas com semântica diferente.
Resposta nível Sênior
Pub/Sub resolve boa parte do que o Kafka resolve — múltiplos assinantes independentes do mesmo tópico, retenção configurável, capacidade de reler mensagens — mas com um modelo de dados diferente. Não existe partition como unidade de paralelismo e ordenação; em vez disso, há uma ordering key opcional que garante ordem para mensagens com a mesma chave, às custas de throughput menor nesse fluxo. A operação é zero para o time — não há cluster para gerenciar, diferente do Kafka auto-hospedado. Na prática, para times já comprometidos com Java/Spring e o ecossistema de client do Kafka (Spring Kafka, Kafka Streams), migrar para Pub/Sub tem custo de reescrita; para times GCP-native, sem investimento prévio em Kafka, Pub/Sub remove a complexidade operacional de cluster, ao custo de menor controle sobre paralelismo/ordenação.
Explicação aprofundada
Veja a comparação completa no Capítulo 2.
Exemplo financeiro
Um sistema de conciliação bancária que precisa garantir ordem estrita de eventos por conta pagaria
o custo de uma ordering key por contaId no Pub/Sub — equivalente conceitualmente a particionar
por key no Kafka, mas com uma penalidade de throughput diferente e explícita no Pub/Sub.
"Pub/Sub e Kafka são intercambiáveis, é só trocar o client"
A ausência do conceito de partition/offset muda a semântica de ordenação e de paralelismo de consumo. Migrar entre eles não é uma troca trivial de biblioteca — exige redesenhar a estratégia de particionamento/ordenação.
Pode vir a seguir
Pode vir a seguir: "como funciona ordenação sem partition?" e "você usaria Pub/Sub para um sistema já maduro em Kafka?".
Capítulos relacionados