Arquitetura

Vertical slice, motor puro compartilhado

O mesmo motor roda na API síncrona e nos workers assíncronos — a garantia estrutural de que os dois caminhos nunca divergem.

Como as peças se encaixam

O painel conversa com a API por chamadas autenticadas. Services e repositories orquestram o motor puro, o mesmo que os workers consomem da fila — é o que garante que o caminho síncrono e o assíncrono nunca decidam diferente. Um banco relacional guarda dados e histórico; um cache em memória cuida de regra compilada, rate limit e sessão.

  • Ports + Adapters + Container (DI) para toda infra
  • Repositórios fazem flush; o commit é do service
  • Cache invalidado por versão de grupo
  • Auditoria atômica na mesma transação
  • Pipe fixa a versão de cada grupo — publicar não muda produção sozinho
  • O histórico registra QUAL versão decidiu cada validação
  • Fila com retentativa e DLQ: o que falhou para onde alguém olha
Multi-tenantAPI RESTRBAC por permissãoVersão publicada imutávelAssíncrono com retentativa e DLQRate limit por workspaceAuditoria de toda mudançaHistórico de qual versão decidiu
Frontend
painel web · claro/escuro
chamadas autenticadas
API REST
HTTP · JSON
auth · RBACmulti-tenantgrupos · campos · regrasvalidação · simulação
enfileira · fila durável
Motor de regras
avaliação pura
mesmo
motor
Workers
consumidor da fila
persiste · cacheia
Banco relacional
dados e histórico
Cache em memória
cache · rate limit · sessão

Um motor, muitos produtos

A diferença entre um caso de uso e outro é só o conjunto de regras cadastrado.