Pular para o conteúdo

ADR-0002 · Fastify com Clean Architecture e DDD

Status: aceito · Data: 2025-08 (retroativo)

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.

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.

  • ➕ 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 por
Nós Tecnologia · Desenvolvimento Criativo