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
motor
Workers
consumidor da fila
persiste · cacheia
Banco relacional
dados e histórico
Cache em memória
cache · rate limit · sessão