Pular para o conteúdo principal

Pergunta 13 de 50

O que é um Topic?

PlenoSênior

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