Pergunta 13 de 50
O que é um Topic?
Pergunta
"O que é um Topic no Kafka?"
O que o entrevistador quer avaliar
Se você distingue a abstração lógica (tópico) da estrutura física real (partitions) — um erro comum é tratar "tópico" como se fosse o próprio log, quando na verdade ele é dividido em partitions independentes.
Resposta rápida
Topic é o nome lógico sob o qual eventos relacionados são publicados e consumidos — por exemplo,
pagamentos.aprovados. Fisicamente, um tópico é dividido em uma ou mais partitions, que são os logs
ordenados onde os dados realmente residem.
Resposta nível Sênior
Um tópico não tem schema imposto pelo Kafka em si — o schema, quando existe, é responsabilidade de uma camada como o Schema Registry. O que o Kafka garante sobre um tópico é a divisão em partitions e a ordem de entrega dentro de cada uma delas — não entre partitions diferentes do mesmo tópico. Ao criar um tópico, as decisões relevantes são o número de partitions (paralelismo, Capítulo 4), o replication factor (disponibilidade, Capítulo 5) e a política de retenção (Capítulo 8) — o tópico em si é só o nome que amarra essas decisões.
Explicação aprofundada
Veja "Topic" no Capítulo 3.
Exemplo financeiro
O tópico boletos.emitidos pode ter 8 partitions, replication factor 3 e retenção de 30 dias — três
decisões de design independentes, todas amarradas ao mesmo nome lógico de tópico que producers e consumers
referenciam no código.
"Um tópico Kafka é como uma tabela de banco de dados"
A analogia ajuda a entender que um tópico agrupa dados relacionados, mas quebra ao considerar ordenação: uma tabela normalmente não tem noção de "ordem garantida apenas para um subconjunto de linhas" — um tópico Kafka tem exatamente essa característica, por causa das partitions.
Pode vir a seguir
Prováveis follow-ups: "o que é uma Partition?" e "por que existem Partitions?".
Capítulos relacionados