ADR-0002 · Fastify com Clean Architecture e DDD
Status: aceito · Data: 2025-08 (retroativo)
Contexto
Seção intitulada “Contexto”Regras como preço por pé, taxa de montagem, cupons e geração de PDFs estavam espalhadas em views e serializers. Testar uma regra exigia subir o framework.
Decisão
Seção intitulada “Decisão”Concentrar o domínio no serviço order-lifecycle (Fastify 4 +
TypeScript), em quatro camadas: domain (entidades, value objects, serviços
de domínio, contratos), application (um caso de uso por arquivo),
infrastructure (Prisma, InfinitePay, PDF, upload, Redis) e presentation
(rotas, controllers, schemas). A injeção de dependências fica em config/dependency-injection.ts.
Consequências
Seção intitulada “Consequências”- ➕ Regras testáveis sem banco (Vitest +
vitest-mock-extended). - ➕ Fastify é rápido e valida com JSON Schema nativo.
- ➖ Mais arquivos por funcionalidade (rota, controller, schema, mapper, caso de uso, repositório).
- ➖ O nome “microsserviços” na documentação antiga não corresponde à realidade: é um serviço de domínio + o front.

Desenvolvido e documentado porNós Tecnologia · Desenvolvimento Criativo

