domain-driven-design

Model complex domains with bounded contexts and domain events.

8|Updated Jan 9, 2026
One-click install
npx skills add https://github.com/svngoku/coding-agents-skills --skill domain-driven-design-svngoku
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-driven-design
Source: https://github.com/svngoku/coding-agents-skills/tree/main/skills/ddd
Command: npx skills add https://github.com/svngoku/coding-agents-skills --skill domain-driven-design-svngoku

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Domain-driven design (DDD) helps teams align software models with business concepts, reducing ambiguity and rework by modeling the domain in code and language.

Core Features & Use Cases

  • Strategic design (bounded contexts, context maps, ubiquitous language) to organize complex domains.
  • Tactical design (entities, value objects, aggregates, repositories) to enforce invariants and clear boundaries.
  • Event Storming facilitation and domain events to capture business processes and enable eventual consistency.
  • Language-aware implementations and code-review guidance across Python and TypeScript.

Quick Start

Identify core domain concepts and bounded contexts, then model aggregates and domain events.

Frequently Asked Questions about domain-driven-design

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

FAQPage Schema
How do I use domain-driven design to align software models with business concepts?

Domain-driven design aligns software models with business concepts by applying strategic design to organize complex domains and tactical design to enforce invariants. This modeling approach reduces ambiguity and rework by reflecting the domain directly in code and language.

What is the difference between strategic design and tactical design in DDD?

Strategic design in DDD organizes complex domains using bounded contexts, context maps, and ubiquitous language. Tactical design implements invariants and clear boundaries using entities, value objects, aggregates, and repositories to enforce domain rules.

How do I facilitate event storming to capture business processes?

Event storming captures business processes by modeling domain events that enable eventual consistency. This DDD technique helps teams discover bounded contexts and design multi-language implementations across Hexagonal, CQRS, and Event Sourcing architectures.

Can I implement domain-driven design patterns in Python and TypeScript?

Domain-driven design supports language-aware implementations and code-review guidance across Python and TypeScript. It provides domain events and repository ports to enforce domain boundaries consistently in these programming languages.

When should I use bounded contexts and domain events in software architecture?

Bounded contexts and domain events are needed when developing complex, evolving domains that require eventual consistency. They help align software with business domains, enforce boundaries, and enable architectures like CQRS and Event Sourcing.

Does domain-driven design work with Hexagonal, CQRS, and Event Sourcing architectures?

Domain-driven design works with Hexagonal, CQRS, and Event Sourcing architectures by enforcing domain boundaries and providing repository ports. It offers comprehensive guidance for events, design, and code reviews across these architectural patterns.