Boas Práticas de Arquitetura
Otimize para isolamento de mudanças, não para distribuição prematura. Estas práticas mantêm os backends Node.js evoluíveis sem a sobrecarga de microsserviços desde o primeiro dia.
Busque em todas as páginas da documentação
Otimize para isolamento de mudanças, não para distribuição prematura. Estas práticas mantêm os backends Node.js evoluíveis sem a sobrecarga de microsserviços desde o primeiro dia.
modules/orders/ é responsável pelos pedidos de ponta a ponta; evite pastas globais controllers/ e services/ que escondem a propriedade.index.ts são mais baratos do que YAML do Kubernetes.infrastructure/.index.ts público. Proíba importações profundas em infrastructure/ de pares com ESLint ou dependency-cruiser em CI.main.ts conecta adaptadores; não contém regras de negócios.schemaVersion; consumidores devem ignorar versões desconhecidas com segurança.requestId em cada linha. pino ou equivalente; sem console.log não estruturado em caminhos de produção.engines e CI. Node 24.18.0 Active LTS; teste atualizações em uma release dedicada.Tier A e B. Pule itens de extração de microsserviços até que você tenha um segundo squad bloqueado em implantações.
Automatize em CI com dependency-cruiser. npm run lint:arch local deve corresponder exatamente à CI.
Sim, se as versões forem semver'd e os consumidores tolerarem atraso. Evite importar tipos internos de outro serviço de um pacote shared monolítico que muda diariamente.
Módulos Nest mapeiam para módulos de recursos, mas pastas de domínio ainda devem evitar @Injectable() se você quiser testes unitários puros e rápidos.
Não. Use uma pasta de spike com um ticket explícito de débito técnico para refatorar em módulos antes de contratar o squad #2.
Cliente Prisma importado de manipuladores de rota com 200 linhas de lógica de negócios - não testável e não extraível.
ADRs registram decisões; esta lista registra higiene contínua. Vincule ADRs quando uma caixa de seleção implicar um fork importante.
Limites de módulo ainda importam no layout do repositório. Cada Lambda é um nano-serviço - o custo operacional muda para IAM e cold starts.
Trimestralmente para repositórios com mais de 12 meses de idade, ou após qualquer incidente atribuído a "acoplamento inesperado".
Importações profundas entre módulos tendendo a zero em CI, e tempo de chumbo de implantação estável à medida que o número de engenheiros cresce.
Versões de Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026