Back to Glossary

Architecture & Technology

Domain-Driven Design (DDD)

Domain-Driven Design (DDD) is an approach to software development that centers on modeling software to match a business domain's reality, fostering a shared understanding between technical and domain experts.

Context for Technology Leaders

For CIOs and Enterprise Architects, DDD is crucial for aligning software solutions with core business capabilities, ensuring systems accurately reflect complex organizational processes. It promotes a ubiquitous language, bridging the communication gap between business stakeholders and development teams, leading to more resilient and adaptable architectures. This approach is particularly valuable in large enterprises adopting microservices or complex distributed systems, as it helps manage complexity and maintain strategic coherence across diverse technology landscapes.

Key Principles

  • 1Ubiquitous Language: Establish a common, precise language shared by domain experts and developers, ensuring clear communication and consistent understanding of the business domain.
  • 2Bounded Contexts: Define explicit boundaries within which a particular domain model is valid, preventing ambiguity and ensuring model integrity in complex systems.
  • 3Context Mapping: Explicitly define relationships and translations between different Bounded Contexts, facilitating integration and communication across distinct domain models.
  • 4Aggregates: Group related objects that must be treated as a single unit for data changes, simplifying transaction management and maintaining data consistency.

Related Terms

MicroservicesEvent-Driven ArchitectureBounded ContextUbiquitous LanguageEnterprise Architecture