Graph
Domain-Driven Design

🏷️Domain-Driven Design

NEW

Also known as: DDD

A methodology aligning software models and language with business domains.

DESCRIPTION

Domain-Driven Design centers software around the core business domain, using ubiquitous language and bounded contexts. Strategic design identifies domains and relationships; tactical patterns implement aggregates, entities, and value objects. DDD clarifies boundaries to manage complexity and avoid muddled models. It pairs well with event-driven architectures and microservices. In data, it informs domain-aligned schemas and contracts. DDD improves collaboration between experts and developers.

ALTERNATIVE DEFINITIONS

Wikipedia

Domain-driven design (DDD) is an approach to software development for complex needs by connecting the implementation to an evolving model of the core business concepts.

Highlights evolving models and complex needs addressed by DDD.

Source

Domain Language (Eric Evans)

Domain-Driven Design is an approach to developing complex software in which a team aligns the design and implementation with the business’s core domain and knowledge.

Emphasizes alignment with the business’s core domain and shared language.

Source

Bounded Context Ubiquitous Language Event Sourcing CQRS Strategic Design Aggregate Entity Value Objects Repository Pattern Context Mapping

COMPETING TERMS

Data-Driven Design

KNOWLEDGE AREAS

Software Modeling Data Architecture Domain & Business Context

TARGET AUDIENCE

Software Developer Data Architect Enterprise Architect AI Product Manager Data Modeler

EXTERNAL SOURCES

TOP QUESTIONS

What problem does Domain-Driven Design solve?

DDD tackles complexity by aligning code with domain models and language, reducing miscommunication and model drift.

Category: Definition

What is a bounded context in Domain-Driven Design?

A bounded context defines a clear boundary within which a model applies, preventing ambiguity and inconsistent meanings.

Category: Overview

How does Domain-Driven Design influence data architectures?

DDD promotes domain-aligned schemas, contracts, and data products, clarifying ownership and integration boundaries.

Category: Relevancy

What are common mistakes in Domain-Driven Design?

Skipping domain discovery, overengineering tactical patterns, and failing to maintain ubiquitous language are frequent issues.

Category: Mistakes

How do microservices relate to Domain-Driven Design?

Microservices often map to bounded contexts, encapsulating domain logic and data behind well-defined interfaces.

Category: Example

What roles are central in Domain-Driven Design?

Domain experts and developers collaborate closely to evolve the model and language.

Category: Requirements

How to start with Domain-Driven Design?

Conduct domain discovery, create context maps, establish ubiquitous language, and identify core domains before tactical design.

Category: Best practices

Is Domain-Driven Design only for large systems?

No; it benefits any system with complex business logic or evolving requirements, regardless of size.

Category: Misunderstanding

What is a hot topic around Domain-Driven Design?

Combining DDD with event-driven architectures and data mesh for domain-aligned socio-technical design.

Category: Topic