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.