Pular para o conteúdo principal

Pergunta 30 de 50

O que é Retention Period?

PlenoSênior

Pergunta

"O que é o Retention Period de um tópico Kafka?"

O que o entrevistador quer avaliar

Se você entende retenção como independente de consumo — o ponto que mais diferencia o Kafka de uma fila tradicional.

Resposta rápida

Retention period é a política que determina por quanto tempo (ou até que tamanho acumulado) os registros de uma partition permanecem disponíveis, configurada via retention.ms e/ou retention.bytes — o que for atingido primeiro dispara a limpeza dos registros mais antigos.

Resposta nível Sênior

O ponto central é que a retenção não depende de consumo: um registro não é removido por ter sido lido — ele permanece no log até expirar pela política configurada, mesmo que todos os Consumer Groups existentes já o tenham processado. E o inverso também vale: um registro nunca lido por nenhum consumer some do log assim que a retenção expira, independentemente disso. É essa característica que viabiliza replay (Capítulo 8): reprocessar eventos antigos só é possível enquanto eles ainda estiverem dentro da janela de retenção.

Explicação aprofundada

Veja "Retention Period" no Capítulo 8.

Exemplo financeiro

Um tópico transacoes.autorizadas com retenção de 7 dias permite que um novo serviço de analytics, criado hoje, leia o histórico completo dos últimos 7 dias assim que é implantado — sem que o serviço de autorização precise reenviar nada.

"A mensagem some do tópico assim que todos os consumers a leem"

Isso descreve o comportamento de uma fila tradicional, não do Kafka. A mensagem permanece disponível até a retenção expirar, independentemente de quantos consumers (ou nenhum) já a leram.

Pode vir a seguir

Prováveis follow-ups: "o que é Replay?" e "como o Kafka consegue reler mensagens já consumidas?".

Capítulos relacionados