Pergunta 30 de 50
O que é Retention Period?
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