From spring-boot
Guides Domain-Driven Design for complex business systems: defines bounded contexts, structures domain models, designs aggregates/entities/value objects, chooses monolith vs microservices.
npx claudepluginhub joaquimscosta/arkhe-claude-plugins --plugin spring-bootThis skill uses the workspace's default tool permissions.
DDD manages complexity through alignment between software and business reality. **Strategic design (boundaries, language, subdomains) provides more value than tactical patterns (aggregates, repositories).**
Applies Domain-Driven Design to model software around business domains using bounded contexts, aggregates, ubiquitous language, domain events, and context mapping. For domain modeling, monolith splitting, and microservice boundaries.
Creates ddd4j (Domain-Driven Design for Java) projects using ddd4j-boot framework. Supports single-module monolith, multi-module monolith, and microservices architectures.
Scaffolds Spring Boot 3.x/4.x projects from Spring Initializr with DDD or Layered architecture, JPA, SpringDoc OpenAPI, and Docker Compose for PostgreSQL/Redis/MongoDB. Use for new Java backends or microservices.
Share bugs, ideas, or general feedback.
DDD manages complexity through alignment between software and business reality. Strategic design (boundaries, language, subdomains) provides more value than tactical patterns (aggregates, repositories).
Apply DDD when:
DDD is overkill when:
See WORKFLOW.md for detailed step-by-step instructions for each phase.
| Type | Investment | Example |
|---|---|---|
| Core | Maximum - competitive advantage | Recommendation engine, trading logic |
| Supporting | Custom but quality tradeoffs OK | Inventory management |
| Generic | Buy/outsource | Auth, email, payments |
Customer, OrderMoney, Address, EmailDefault to value objects. Only use entities when identity matters.
Start with modular monolith when:
├── Team < 20 developers
├── Domain boundaries unclear
├── Time-to-market critical
└── Strong consistency required
Consider microservices when:
├── Bounded contexts have distinct languages
├── Teams can own full contexts
├── Independent scaling required
└── DevOps maturity exists
| Need | Skill |
|---|---|
| Data layer implementation | spring-boot-data-ddd — JPA/JDBC aggregates, repositories, transactions |
| REST API layer | spring-boot-web-api — Controllers, validation, exception handling |
| Module boundaries | spring-boot-modulith — Module structure, event-driven communication |
| Testing patterns | spring-boot-testing — Aggregate tests, module tests, Scenario API |
| Security for domains | spring-boot-security — Method-level authorization, role-based access |