Pular para conteúdo

ADR-0003: Domain Driven Design

Status: Superseded — substituída pela prática real observada nos produtos.

Contexto

A visão original previa DDD formal (bounded contexts, aggregates, value objects, domain events explícitos) como padrão obrigatório em toda a plataforma.

Decisão Real

Os produtos modelam o domínio diretamente em models Django, um app por área de negócio (ex.: no CoreFlow CRM: contas, contatos, leads, oportunidades, atividades, tarefas, anotacoes). Não há bounded contexts, aggregates ou value objects formalizados como conceitos de código — o app Django já cumpre esse papel de fronteira de domínio, de forma implícita.

Consequências

  • Linguagem ubíqua existe informalmente (nomes de models/campos em português, alinhados ao negócio), sem glossário DDD formal mantido.
  • Ausência de domain events explícitos — comunicação entre domínios ocorre via chamadas diretas ou signals Django, não um barramento de eventos.
  • Suficiente para a complexidade atual de cada produto (CRUD + regras de negócio localizadas); reavaliar se um produto crescer a ponto de justificar bounded contexts formais.