abp-ddd

Design ABP DDD domain models with entities, aggregates, and repositories.

1|Updated Mar 20, 2026
One-click install
npx skills add https://github.com/afonsoft/VideoChat --skill abp-ddd-afonsoft
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: abp-ddd
Source: https://github.com/afonsoft/VideoChat/tree/main/.agents/skills/abp-ddd
Command: npx skills add https://github.com/afonsoft/VideoChat --skill abp-ddd-afonsoft

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

ABP DDD patterns guide developers to construct a rich domain model by defining Entities, Aggregates, Value Objects, Repositories, Domain Services, Domain Events, and Specifications to enforce invariants and improve maintainability.

Core Features & Use Cases

  • Provides a blueprint for modeling complex domains with rich encapsulation and explicit boundaries (Aggregate Roots).
  • Demonstrates the role of Domain Services and Domain Events in maintaining business rules across aggregates.
  • Use Case: Apply patterns to implement a robust order management or inventory module in an ABP project.

Quick Start

Outline a concise implementation plan for applying ABP DDD patterns in a new or existing ABP project.

Frequently Asked Questions about abp-ddd

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

FAQPage Schema
How do I design a rich domain model with ABP DDD patterns?

To design a rich domain model with ABP DDD, define entities, aggregate roots, and value objects with explicit boundaries. This enforces invariants and improves maintainability across complex business domains.

When should I use domain services versus aggregate roots in ABP domain-driven design?

Use aggregate roots to enforce invariants within a single boundary in ABP domain-driven design. Use domain services to maintain business rules and orchestrate logic across multiple aggregates via domain events.

How do I implement repositories and specifications in an ABP DDD architecture?

Implement repositories in an ABP DDD architecture to handle data persistence for aggregate roots. Apply specifications to encapsulate query logic, keeping the domain layer clean, scalable, and maintainable.

What is the best way to handle domain events in ABP DDD?

The best way to handle domain events in ABP DDD is to dispatch them from aggregate roots to domain services. This decouples aggregates and maintains business rules across explicit domain boundaries.

Can I use ABP DDD patterns for an existing order management module?

Yes, you can apply ABP DDD patterns to an existing order management module by outlining a concise implementation plan. Refactor logic into entities, domain services, and specifications to enforce business invariants.