Version: 1.0
Notification Orchestrator API
O Orchestrator (@messages-api/orchestrator) é o serviço responsável por receber eventos de notificação, aplicar as regras de pré‑processamento do portal (configurações por empresa, tipo/canais e destinatários) e publicar um payload final na fila do worker (SQS) para efetivar o envio.
Na prática, ele funciona como uma camada de normalização + decisão + montagem de payload entre quem dispara o evento e o worker que envia mensagens (e-mail/whatsapp/sms/push).
O que o Orchestrator faz
- Consome eventos via SQS (entrada) e processa em lote, normalizando o payload para uma lista de eventos
{ type_notification, dados }. - Executa o pré‑processamento do portal, tipicamente:
- valida tipo do evento e campos mínimos;
- carrega configurações por empresa/tipo (habilitação, canais elegíveis);
- resolve destinatários (broadcast por tabelas e/ou por usuário/grupo, conforme o tipo);
- monta o
WorkerQueuePayloadfinal.
- Publica na fila SQS do worker (saída) usando o
SendNotificationService. - Expõe o endpoint HTTP
POST /notifications/preprocess, que executa o mesmo pré‑processamento e publica na mesma fila do worker (útil para integrações sincrônicas e troubleshooting).
Entradas e saídas (alto nível)
- Entrada (assíncrona): SQS inbound do Orchestrator (
ORCHESTRATOR_INBOUND_SQS_QUEUE_URL) - Entrada (síncrona): HTTP
POST /notifications/preprocess - Saída: SQS do worker (
SQS_QUEUE_URLcom fallback emWORKER_OUTBOUND_SQS_QUEUE_URL)
Onde ver regras e contrato
- Contrato do payload publicado ao worker:
contract-message