domain-driven-design

Plan Domain-Driven Design work from strategic modeling to tactical and evented architecture patterns.

Updated Aug 11, 2026
One-click install
npx skills add https://github.com/DucCuong159/Realtime-chatapp --skill domain-driven-design-duccuong159
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-driven-design
Source: https://github.com/DucCuong159/Realtime-chatapp/tree/main/.agent/skills/domain-driven-design
Command: npx skills add https://github.com/DucCuong159/Realtime-chatapp --skill domain-driven-design-duccuong159

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Deciding whether and how to adopt Domain-Driven Design is difficult: teams often over-engineer simple CRUD systems or under-model complex domains. This Skill provides a viability check, a staged workflow from strategic modeling to tactical implementation, and routing to specialized skills for CQRS, event sourcing, sagas, and projections. ## Core Features & Use Cases - Viability Assessment: Applies a four-criteria check (business complexity, model collisions, unstable integrations, auditability needs) before committing to full DDD. - Staged Deliverables: Produces strategic artifacts first (subdomain maps, bounded contexts, ubiquitous language glossary), then tactical artifacts (aggregates, value objects, domain events), with a checklist in references/ddd-deliverables.md. - Skill Routing: Directs follow-up work to specialized skills such as ddd-strategic-design, ddd-context-mapping, cqrs-implementation, event-sourcing-architect, and saga-orchestration. - Use Case: A team building a billing platform asks whether full DDD is justified; the Skill runs the viability check, defines the bounded contexts and glossary, then routes evented architecture questions to the appropriate specialist skills. ## Quick Start Ask the assistant to assess whether your project should adopt Domain-Driven Design and to list the strategic artifacts your team must produce this week.

Frequently Asked Questions about domain-driven-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I decide if my project needs Domain-Driven Design?

Run a viability check: adopt full DDD only when at least two conditions hold, such as complex or fast-changing business rules, model collisions across teams, unstable integration contracts, or critical auditability requirements. Simple CRUD systems do not justify the added complexity.

What artifacts should a DDD strategic design phase produce?

Strategic design produces a subdomain map classifying core, supporting, and generic domains, a bounded context map with ownership, a ubiquitous language glossary, and one or two architecture decision records documenting critical boundary decisions.

When should I use CQRS and event sourcing with DDD?

Use CQRS when read and write workloads diverge significantly, and event sourcing when event history must be the source of truth for auditability. These are evented-stage patterns applied only when domain needs require them, not by default.

What are the limitations of Domain-Driven Design?

DDD does not replace direct workshops with domain experts and provides no framework-specific code generation. It should not justify over-engineering simple systems, and it fails without access to domain knowledge or a proxy product expert.

How do bounded contexts relate to microservices?

Bounded contexts define explicit model boundaries with their own ubiquitous language, which often align with microservice boundaries. Context mapping patterns handle translation and integration contracts between these contexts when models differ.