Skip to main content
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 WorkerQueuePayload final.
  • 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_URL com fallback em WORKER_OUTBOUND_SQS_QUEUE_URL)

Onde ver regras e contrato