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