domain-driven-design

Model software around business domains using bounded contexts and aggregates.

Updated Apr 5, 2026
One-click install
npx skills add https://github.com/pohlai88/afenda-vite-react --skill domain-driven-design-pohlai88
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: domain-driven-design
Source: https://github.com/pohlai88/afenda-vite-react/tree/main/.agents/skills/domain-driven-design
Command: npx skills add https://github.com/pohlai88/afenda-vite-react --skill domain-driven-design-pohlai88

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Domain-driven design (DDD) helps teams model software around real business concepts, reducing misalignment and complexity by enforcing explicit boundaries and language.

Core Features & Use Cases

  • Bounded contexts, aggregates, and ubiquitous language structure domain models that reflect business capabilities.
  • Domain events, anti-corruption layers, and context mapping to coordinate across contexts without leaking concepts.
  • Clear rules for entities vs. value objects and tight aggregate boundaries to enforce invariants.

Quick Start

Define the core domain, map bounded contexts, identify aggregates, and establish ubiquitous language with domain experts.

Frequently Asked Questions about domain-driven-design

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

FAQPage Schema
How do I model software around the business domain using bounded contexts?

Modeling software around the business domain involves mapping bounded contexts, identifying aggregates, and establishing ubiquitous language with domain experts to reduce misalignment and enforce explicit boundaries.

What is the best way to coordinate across bounded contexts without leaking domain concepts?

The best way to coordinate across bounded contexts is using domain events, anti-corruption layers, and context mapping to prevent concept leakage and manage dependencies between distinct domain boundaries.

How do I enforce invariants when designing domain aggregates?

To enforce invariants when designing domain aggregates, apply tight aggregate boundaries and clear rules for distinguishing entities versus value objects to protect transactional consistency within your domain model.

When do I need an anti-corruption layer in domain-driven design?

You need an anti-corruption layer in domain-driven design when integrating with external systems or legacy subsystems to translate external models and prevent them from polluting your bounded context's ubiquitous language.

Does domain-driven design work for coordinating complex domain models?

Yes, domain-driven design works for complex domain models by applying context mapping and bounded contexts to structure domain logic that accurately reflects real business capabilities and reduces architectural complexity.