Arquitetura e DDD para Fundadores

Definition

Arquitetura e DDD agrupa 5 rule-sets que ensinam o agente a pensar em modelo de negócio antes de tabela ou controller: Clean Architecture (Martin, 289 regras full, mini 31), Domain-Driven Design (Evans, 523), DDD Distilled (Vernon, 158), Implementing DDD (Vernon, 177) e Patterns of Enterprise Application Architecture (Fowler, 196). No agent-rules-books cada um vira mini de ~30-36 regras para boundaries, linguagem ubíqua e padrões empresariais.

Key Points

  • Clean Architecture: regra da dependência (estável → instável), separar políticas de negócio de detalhes (framework, DB, UI); manter código resistente à troca de tecnologia.
  • DDD (Evans): modelagem de domínio, linguagem ubíqua, bounded contexts, táticas (Entity, Value Object, Aggregate) e estratégica (Context Mapping).
  • DDD Distilled: rampa leve — subdomínios, bounded contexts, context mapping sem cerimônia excessiva; ideal para fundadores que querem DDD sem overhead.
  • Implementing DDD: foco em implementação — aggregates, domain events, integrações, arquitetura de aplicação.
  • PEAA (Fowler): catálogo de padrões — layers, service layer, transaction script vs domain model, data mapper, repository, unit of work, DTO, integração; ajuda a escolher o padrão certo em vez de misturar responsabilidades.

Como usar sem over-engineering

  • MVP: use DDD Distilled (mini 38 regras) + PEAA (mini 36) para dar nome ao domínio sem criar 12 bounded contexts no dia zero. Scoped rules: só src/domain/**.
  • Scale: evolua para Clean Architecture + DDD completo quando trocar DB/framework doer — a dor é o gatilho, não a vaidade.
  • Combine com: system-design (onde os dados moram, como escalar) e especificacao-de-issues-para-agentes (issue fala a linguagem do domínio, não de tabela).

Implications

Este cluster dá ao founder vocabulário para especificar estrutura (“quero um aggregate de Pedido com evento de pagamento, separado da persistência”) em vez de “cria uma tabela”. O agente passa a gerar boundaries estáveis em vez de um monolito acoplado ao framework.

Sources