Sobes.tech
Senior

O que acontece se, durante o enriquecimento, um dos serviços estiver indisponível (por exemplo, o serviço com o nome completo/dados do utilizador)? O Kafka inteiro para?

sobes.tech IA

Resposta da IA

Se ao enriquecer dados um dos serviços, por exemplo, o serviço com informações de nome completo ou dados do usuário, não estiver disponível, isso não leva à parada de todo o Kafka. Kafka como sistema de troca de mensagens continua a funcionar, pois está separado da lógica de processamento e enriquecimento de dados.

O que acontece na prática:

  • O consumidor, que lê mensagens do Kafka e chama o serviço de enriquecimento, pode receber um erro ou timeout ao acessar um serviço indisponível.
  • Dependendo da implementação, o consumidor pode:
    • Registrar o erro e pular o enriquecimento para essa mensagem,
    • Tentar novamente com atraso exponencial,
    • Enviar a mensagem para DLQ (Dead Letter Queue) para análise posterior,
    • Pausar o processamento de mensagens se for crítico.

Assim, a falha de um serviço não para o Kafka, mas pode afetar o processamento de mensagens em um consumidor específico. Para a resiliência do sistema, recomenda-se implementar tratamento de erros e timeouts, bem como usar padrões de resiliência, como Circuit Breaker.