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.