- Ubiquitous Language: Establish a common, rigorous language between developers and domain experts.
- Bounded Contexts: Define explicit boundaries within which a domain model applies and is valid.
- Entities: Represent objects with continuity and identity that transcend changes to their attributes.
- Value Objects: Objects that are equal based on their value attributes, rather than identity.
- Aggregates: Cluster of associated objects treated as a unit for data changes.
- Repositories: Mediate between the domain and data mapping layers using a collection-like interface for accessing domain objects.
- Services: Encapsulate business logic not naturally fitting into an entity or value object.
- Domain Events: Represent something that has happened in the domain as a first-class concept.
- Modules: Group related domain concepts into cohesive units, facilitating understanding and maintenance.
- Context Maps: Represent the relationships between bounded contexts and their integration strategies.
- Anti-corruption Layer: Isolate the domain model from external systems using a translation or adapter layer.
- Continuous Integration: Regularly integrate and validate changes to the domain model.
- Contextualized Teams: Organize teams around bounded contexts to align with the domain structure.
- Explicit Architecture: Define architectural boundaries based on the domain.
- Linguagem Ubíqua: Estabelecer uma linguagem comum e rigorosa entre desenvolvedores e especialistas do domínio.
- Contextos Delimitados: Definir fronteiras explícitas dentro das quais um modelo de domínio se aplica e é válido.
- Entidades: Representar objetos com continuidade e identidade que transcendem mudanças em seus atributos.
- Objetos de Valor: Objetos que são iguais com base em seus atributos de valor, em vez de identidade.
- Agregados: Agrupamento de objetos associados tratados como uma unidade para mudanças de dados.
- Repositórios: Mediar entre o domínio e as camadas de mapeamento de dados usando uma interface semelhante a uma coleção para acessar objetos de domínio.
- Serviços: Encapsular lógica de negócios que não se encaixa naturalmente em uma entidade ou objeto de valor.
- Eventos de Domínio: Representar algo que aconteceu no domínio como um conceito de primeira classe.
- Módulos: Agrupar conceitos de domínio relacionados em unidades coesas, facilitando o entendimento e a manutenção.
- Mapas de Contexto: Representar as relações entre contextos delimitados e suas estratégias de integração.
- Camada Anti-Corrupção: Isolar o modelo de domínio de sistemas externos usando uma camada de tradução ou adaptador.
- Integração Contínua: Integrar e validar regularmente as mudanças no modelo de domínio.
- Equipes Contextualizadas: Organizar equipes em torno de contextos delimitados para alinhar com a estrutura do domínio.
- Arquitetura Explícita: Definir fronteiras arquiteturais com base no domínio.