O Worker RTS envia uma mensagem via PubSub alertando (com o Id do dado na tabela “ControleEvento”) o Worker de Eventos que existem dados para serem enviados;
O Worker de Eventos lê a mensagem do PubSub e inicia a rotina que consiste em:
Ler a tabela “ControleEvento” e obter os dados com status “pendente”;
Identificar o tipo do evento:
Simples - Apenas notifica que tem dados para consumo;
Completa - Envia os dados para um destino;
Monta requisição com as informações necessárias (ex: url e credencial de destino etc), envia essa requisição para o MS Responsável via http e incrementa o campo “quantidade_notificacoes”;
Se ocorrer falha na leitura da mensagem, o status do dado no banco do MS Fila é alterado para “FalhaPedidoNotificacao” e a mensagem de erro armazenada no campo “mensagem_erro”.
O MS Responsável recebe a requisição e executa a ação de notificação, seguindo os parâmetros enviados;
Em caso de sucesso, o MS retorna 200 para o Worker de Eventos e este por sua vez:
Altera o status do dado para “Entregue” (ou “Notificado”, se a notificação for do tipo Simples) no banco do MS Fila;
Altera o status para “processado” na tabela de “ControleEvento”.
Em caso de falha, o MS retorna 400 com o erro para o Worker de Eventos e este por sua vez:
Altera o status do dado para “FalhaNotificacao” no banco do MS Fila;
Altera o status para “erro” na tabela de “ControleEvento”.
A mensagem de erro é armazenada em ambos os bancos.