Pular para conteúdo

ADR-0002: Framework Backend — NestJS

Status

Accepted

Context and Problem Statement

O projeto atenvi-bff precisa de um framework Node.js estruturado para atuar como Backend for Frontend, agregando dados de serviços internos e adaptando contratos para os clientes web.

Decision Drivers

  • Estrutura modular para organizar por domínio
  • TypeScript first com suporte nativo a decorators
  • Injeção de dependência built-in
  • Geração de documentação OpenAPI integrada
  • Compatibilidade com padrões REST e GraphQL

Considered Options

  • NestJS
  • Express + estrutura manual
  • Fastify + estrutura manual
  • Hono

Decision Outcome

Chosen option: NestJS, porque a arquitetura opinada (módulos, controllers, services, guards) reduz decisões de estrutura e acelera onboarding. DI nativo e decorators alinham com o padrão TypeScript do ecossistema.

Positive Consequences

  • Estrutura consistente entre times
  • Pipes, Guards e Interceptors para cross-cutting concerns (auth, validação, logging)
  • Swagger/OpenAPI gerado automaticamente via decorators
  • Testing utilities integradas

Negative Consequences

  • Overhead de boilerplate para endpoints simples
  • Curva de aprendizado para developers sem background em frameworks DI

More Information

  • Versão mínima: NestJS 11
  • Projeto: atenvi-bff
  • Pattern: BFF (Backend for Frontend) — não é API core, agrega e adapta