Pintura a óleo em azul: dois engenheiros de software programam em par diante de dois monitores, com um quadro de diagrama ao fundo
  1. Início
  2. NexLog OS
  3. Academy
  4. Arquitetura

Uma stack multi-tenant e orientada a eventos.

Fastify, MongoDB e Angular sobre um núcleo event-driven: businessEvents com correlationId e causationId, event ledger, MDM unificado, ABAC e Zero Trust.

Quatro camadas sobre o mesmo modelo canônico

Interfaces headless consomem a mesma API; cada requisição passa por ABAC, vira evento no ledger e é persistida no MongoDB, isolada por tenant.

InterfacesHeadless por design, todas sobre a mesma API.
Planning ConsoleAngular
App NexLog DriverPOD · tracking
Kiosk Portariacheck-in
Portal B2B/B2Cself-service
APIFastify com validação tipada, rate limiting e observabilidade embutidos.
REST versionado/api/v1/
ValidaçãoJSON Schema
AutorizaçãoABAC
Observabilidadelogs · métricas · traces
Núcleo event-drivenToda operação vira evento canônico, com a cadeia causal preservada.
Eventos de negóciobusinessEvents
Cadeia causalcorrelationId · causationId
Ledger centraleventLedger
Dados mestresMDM
PersistênciaMongoDB com collections em camelCase e isolamento por tenant.
CollectionscamelCase, plural
Multi-tenanttenantId
RetençãoTTL
Replicaçãoreplica set multi-região

WMS, TMS, OMS, YMS, Customs, Control Tower, ESG e Financeiro publicam e consomem eventos do mesmo ledger.

Visão geral

O NexLog OS roda em Fastify (API), MongoDB (persistência canônica) e Angular (painel operacional). É multi-tenant, com tenants e papéis granulares, e event-driven: cada operação gera businessEvents com correlationId e causationId, registrados no eventLedger.

Sobre esse núcleo ficam o MDM unificado, a autorização por atributo (ABAC), a arquitetura Zero Trust, a observabilidade e as interfaces especializadas, todas headless sobre a mesma API.

Stack técnica

ComponentePapelDescrição
FastifyAPIFramework Node.js de alta performance: baixo overhead por requisição, plugins tipados e hooks robustos.
MongoDBPersistência canônicaCollections em camelCase, índices por tenant e agregações tipadas; TTL para businessEvents e replica set multi-região.
AngularPainel operacionalPlanning Console unificado, com módulos para WMS, TMS, OMS, YMS e Control Tower.
Event-drivenNúcleobusinessEvents com correlationId e causationId; eventLedger central, replay, auditoria e integração assíncrona.
MDM unificadoDados mestresProduct, Party, Asset, Location e Document Master compartilhados, sem duplicação entre módulos.
ABAC e Zero TrustSegurançaAutorização por atributo, identidade federada e nenhum perímetro confiável: cada requisição é validada de forma independente.

Multi-tenant e papéis

Cada cliente é um tenant (tenants) isolado na plataforma. Os papéis são valores do enum de roles, em UPPER_SNAKE_CASE.

RoleEscopoUso típico
SUPER_ADMINPlataformaEngenharia CCX, não visível ao cliente.
TENANT_OWNERTenantExecutivo dono da conta; controle total no tenant.
TENANT_ADMINTenantAdministração de usuários, planos e integrações.
MANAGERMóduloGestor operacional: aprovação de exceções e playbooks.
OPERATORMóduloOperador de WMS, TMS ou YMS: execução de tarefas.
VIEWERLeituraSomente leitura: analistas e auditores.

Planos

Do FREE ao ENTERPRISE, os planos definem quantos armazéns e quais módulos o tenant usa.

PlanoPúblicoLimites
FREETrial e sandbox1 tenant, 1 armazém, volume baixo.
STARTERPME em e-commerce1 armazém, módulos essenciais (WMS e OMS).
PROMid-marketVários armazéns; WMS, TMS, OMS e YMS.
ENTERPRISEGrande operaçãoMulti-tenant interno e todos os módulos.

Núcleo event-driven

businessEvents

Cada transição de estado e cada operação relevante é um evento canônico tipado. Os nomes seguem o padrão dot.namespace, por exemplo orders.transition.approved.

correlationId e causationId

Rastreiam a cadeia causal completa entre eventos: pedido, onda, movimento, expedição e fatura.

eventLedger

Ledger central imutável; base para auditoria, replay, analytics e treinamento de IA.

MDM unificado

Product Master, Party Master, Asset Master, Location Master e Document Master, compartilhados por todos os módulos.

Segurança e continuidade

ABAC

Autorização por atributo: tenant, role, recurso e contexto, com granularidade suficiente para avaliar cada requisição.

Zero Trust

Sem perímetro confiável: cada chamada é autenticada, autorizada e registrada.

Sinais de fraude (fraud signals)

Sinais de fraude embutidos em orders, claims e faturamento, pontuados em tempo real.

Disaster recovery

Objetivos mensuráveis de RPO e RTO, replicação multi-região e backup contínuo.

Observabilidade

Logs estruturados, métricas, tracing distribuído e dashboards por tenant.

Interfaces especializadas

Headless por design: todas as interfaces consomem a mesma API.

InterfaceDescrição
App NexLog DriverApp mobile para motoristas: POD digital, tracking, geolocalização e OCR.
Kiosk PortariaAutoatendimento para check-in, com biometria opcional e termo LGPD embutido.
Planning ConsoleApp Angular unificado para WMS, TMS, OMS, YMS e Control Tower.
Portal B2B/B2CPortais dedicados aos clientes: tracking, autoatendimento e documentos.

Convenções de API

Convenções contratuais válidas para todos os módulos.

ArtefatoConvençãoExemplo
Endpoints RESTkebab-case/api/v1/trade-declarations
VersionamentoNo path/api/v1/
Collections MongoDBcamelCase, pluraltradeDeclarations, carbonEntries
Classes e interfaces TSPascalCase, singularTradeDeclaration, CarbonEntry
EnumsUPPER_SNAKE_CASEINBOUND, DRY, SUPER_ADMIN
Eventosdot.namespaceorders.transition.approved

Por que Fastify, MongoDB e Angular

Fastify para uma API de alta performance

Operações de supply chain geram um volume alto de requisições: eventos de picking, movements, checkpoints de tracking e telemetria. O Fastify entrega baixo overhead, validação tipada via JSON Schema e hooks robustos para observabilidade.

A CCX tem histórico com Node.js em produção, e o Fastify permite que o NexLog OS escale horizontalmente sem reescrever camadas.

MongoDB como núcleo canônico

Supply chain é um domínio com esquemas que evoluem rápido: novos campos em SKU, novos atributos de rota, novos metadados em shipment. Com collections em camelCase, o MongoDB permite evoluir esquemas sem downtime, rodar agregações complexas para o Control Tower sem DW separado e escalar horizontalmente por tenant.

Índices compostos por tenantId e chaves de negócio sustentam o multi-tenancy, e o TTL automático cuida da retenção do histórico de eventos.

Angular para o painel operacional

O Planning Console é um app Angular, escolhido pela tipagem forte, pela arquitetura modular, pelo ferramental maduro para formulários complexos (WMS, TMS, configuração de playbooks) e pelos componentes reutilizáveis entre módulos.

As interfaces especializadas (App NexLog Driver, Kiosk Portaria, Portal B2B/B2C) são headless sobre a mesma API, seguindo os princípios MACH.

Perguntas frequentes

Por que MongoDB e não Postgres?

O esquema flexível acelera a evolução em domínios dinâmicos. Onde a consistência transacional é crítica (settlement), usamos padrões de compensação e write concerns específicos.

O Fastify aguenta alto throughput?

Sim. O Fastify tem baixo overhead por requisição, e o NexLog OS roda com plugins de validação, rate limiting e observabilidade embutidos.

Angular ainda faz sentido?

Para painéis operacionais complexos, sim. Tipagem forte, arquitetura modular e ecossistema maduro justificam a escolha.

Multi-tenant significa isolamento físico?

O isolamento é lógico por padrão; no enterprise, o tenant pode rodar em banco dedicado.

ABAC ou RBAC?

ABAC é mais expressivo: permite regras como “MANAGER pode aprovar exceção no próprio CD, desde que o valor fique abaixo de X”.

O event ledger substitui o data warehouse?

Para a maior parte das perguntas operacionais, sim. Para analytics de longo prazo, a integração com o DW é feita via CDC.

Como funciona o disaster recovery?

Com replicação multi-região, backups contínuos e objetivos mensuráveis de RPO e RTO.

Quer discutir a arquitetura com o time do NexLog OS?

Trinta minutos com um engenheiro da CCX, sem custo, para uma conversa técnica sobre multi-tenancy, eventos, ABAC e integração com o seu ERP.