Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
full-statck-skills avatar

Ddd Architecture Selector

  • 15 installs
  • 1 repo stars
  • Updated July 29, 2026
  • full-statck-skills/ddd-skills

Helps choose among five DDD architectures (Layered/Onion/Hexagonal/Clean/COLA) via a decision matrix, team-size mapping, and CQRS-level suggestion.

About

Guides architecture selection across five DDD patterns using a decision matrix, decision tree, and project-context inputs. A developer uses it when deciding which DDD architecture and CQRS level fits a project.

  • Decision matrix across seven-plus dimensions
  • CQRS level recommendation L0-L3

Ddd Architecture Selector by the numbers

  • 15 all-time installs (skills.sh)
  • Ranked #3,491 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Jul 30, 2026 (Skillselion catalog sync)
npx skills add https://github.com/full-statck-skills/ddd-skills --skill ddd-architecture-selector

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs15
repo stars1
Last updatedJuly 29, 2026
Repositoryfull-statck-skills/ddd-skills

What it does

Helps choose among five DDD architectures (Layered/Onion/Hexagonal/Clean/COLA) via a decision matrix, team-size mapping, and CQRS-level suggestion.

Files

SKILL.mdMarkdownGitHub ↗

DDD Architecture Selector

Architecture selection decision guide that evaluates 5 DDD architecture patterns (Layered, Onion, Hexagonal, Clean, COLA) against project context — team size, business complexity, tech stack, infrastructure change frequency, and ecosystem preference.

Workflow

Step 1: Collect Project Context

  • Team size & DDD experience level
  • Business complexity (simple CRUD / moderate / high)
  • Technical stack (Spring Boot / Go / Node.js / .NET / Python)
  • Infrastructure change frequency (low / medium / high)
  • Multi-entry needs (REST + CLI + MQ + gRPC?)
  • Test coverage requirements (unit / integration / E2E)
  • Ecosystem preference (Chinese community / international)

Step 2: Run Decision Matrix

  • Compare 5 architectures across 7+ dimensions

Step 3: Apply Decision Tree

  • Complexity → Team Size → Tech Stack → Recommended Architecture

Step 4: Recommend CQRS Level

  • L0: None, L1: Model Separation, L2: DB Separation, L3: Event Sourcing

Step 5: Classify Domain Types

  • Core / Generic / Supporting → Apply different architectures per domain

Step 6: Suggest Microservice Splitting

  • One BC → One Service, with merge/split rules

Step 7: Route to Specific Architecture Skill

  • Link to detailed implementation guidance

When to Use (and When NOT to)

✅ Use When❌ Skip When
Starting a new project: need architecture decisionArchitecture already decided → go directly to that skill
Comparing multiple DDD architecturesJust need DDD learning → use ddd-architecture-awesome
Team unsure which approach fits bestNeed architecture evaluation of existing project → use ddd-architecture-evaluator
Planning microservice splitting strategyNeed domain modeling after selection → use ddd-domain-designer
Evaluating CQRS necessityNon-DDD project evaluation (consider standard MVC)
Chinese enterprise team making tech decisionsSimple CRUD with no DDD needed → use standard MVC
Team size / DDD maturity unknownNeed code review of existing DDD code → use ddd-code-reviewer

Boundary

CategoryDescriptionAlternative
HandlesNew project architecture selection (5 DDD architectures)
HandlesArchitecture comparison for migration decisions
HandlesCQRS / Event Sourcing necessity assessment
HandlesDomain classification (Core / Generic / Supporting)
HandlesMicroservice splitting based on bounded contexts
HandlesTeam size → architecture mapping
⚠️ RequiresBasic project context: team size, business complexity, tech stack
⚠️ RequiresDomain expert or product owner involvement for classification
Out of ScopeArchitecture already decided — do not use this skillddd-architecture-layered / onion / hexagonal / clean / cola
Out of ScopeJust need DDD learning & concepts — should not use this skillddd-architecture-awesome
Out of ScopeEvaluate existing architecture health & quality — do not useddd-architecture-evaluator
Out of ScopeDomain modeling / aggregate design after selection — not useddd-domain-designer
Out of ScopeCode review for DDD compliance — do not use this skillddd-code-reviewer
Out of ScopeNon-DDD / standard MVC projects — not use this skillUse standard MVC guides (not DDD skills)

Audience

This skill is designed for: Backend developers (implementing DDD architectures), Software architects (evaluating and selecting patterns), Tech leads (reviewing team implementations), and DDD beginners (learning domain-driven design fundamentals).

Rules

1. Architecture selection must evaluate at least 5 dimensions. 2. Never recommend Event Sourcing as default — only after L2 CQRS success. 3. Team size and domain complexity must be the primary selection factors.

5-Architecture Decision Matrix

DimensionLayeredOnionHexagonalCleanCOLA
Learning Cost★☆☆★★★★★★★★★★★☆
Business Complexity Fit★☆☆★★★★★★★★★★★★
CRUD Efficiency★★★★☆☆★☆☆★☆☆★★☆
Infrastructure Replaceability★☆☆★★★★★★★★★★★☆
Test Friendliness★☆☆★★★★★★★★★★★★
Chinese Community★★★★☆☆★☆☆★☆☆★★★
Code Generation SupportGoodPoorPoorPoorExcellent
Module Physical IsolationLowMediumMediumHighHigh
Evolution Path Clarity★☆☆★★★★★★★★★★★★
Team Size Fit1-55-155-1515-505-50
OriginMartin FowlerJeffrey Palermo (2008)Alistair Cockburn (2005)Robert C. Martin (2012)Alibaba (2018)
ArchitectureBest ForAvoid When
LayeredSimple CRUD, small teams, traditional MVC migrationComplex business rules, frequent infra changes
OnionHigh test coverage, changing infrastructureCRUD-heavy apps, teams with no abstraction experience
HexagonalMulti-entry systems, microservice standardizationSimple single-entry CRUD, quick prototypes
CleanLarge enterprise systems, strict physical isolationSmall teams (<5), rapid MVP iterations
COLAChinese Spring Boot ecosystem, engineering standardsNon-Java stacks, international teams

3-Step Decision Tree

Step 1: Assess Business Complexity

Business Complexity?
│
├── Simple CRUD (80%+ CRUD operations)
│   └── Planning DDD adoption in future?
│       ├── No  → LAYERED ARCHITECTURE
│       └── Yes → COLA Simplified (single module)
│
├── Moderate (core business logic with rules)
│   ├── Chinese ecosystem / Spring Boot + MyBatis?   → COLA
│   ├── Value domain layer purity most?               → HEXAGONAL
│   ├── Multi-entry system (REST + CLI + MQ)?         → HEXAGONAL
│   ├── Infrastructure changes often?                 → HEXAGONAL / ONION
│   └── .NET / Python stack?                          → ONION
│
└── High (multiple BCs, microservices)
    ├── Enterprise / international team?              → CLEAN ARCHITECTURE
    ├── Chinese enterprise, per-service standards?     → COLA (multi-module)
    ├── Mixed tech stack per service?                 → HEXAGONAL per service
    └── Need microservice + standard per module?      → COLA + HEXAGONAL hybrid

Step 2: Match Team Size

Team SizeRecommended ArchitectureRationale
1-5Layered or COLA simplifiedLowest ceremony, fastest delivery
5-15Hexagonal / Onion / COLA (single module)Balance abstraction and productivity
15-50Clean / COLA (multi-module)Physical isolation, parallel team work
50+Microservices + Hexagonal per serviceAutonomous teams, independent deploy

Evolution Path: Team grows → upgrade architecture progressively: 1-5 (Layered) → 5-15 (Hexagonal) → 15-50 (Clean/COLA) → 50+ (Microservices+Hex).

Step 3: Final Recommendation

If you have...Then choose...Why
Spring Boot + MyBatis + Chinese teamCOLAEcosystem match, Chinese docs, scaffolding
Multi-entry (REST + CLI + MQ + gRPC)HexagonalAdapter pattern handles multiple entry points
Strict module physical isolation, large enterpriseCleanEntity → UseCase → Adapter enforced isolation
Infrastructure changes often (DB, MQ swap)Hexagonal or OnionPort/Adapter makes swapping trivial
Rapid prototype → evolve DDD laterLayered → upgradeLowest startup cost, clear evolution path
Complex business rules + TDDHexagonalDomain layer independently testable
Team new to DDD, incremental adoptionLayeredClosest to traditional 3-tier, gentlest learning curve
Microservice internal architecture standardHexagonal + COLA per servicePort isolation + engineering standards
Read-heavy, complex queriesCQRS L2Read/write separation, independent optimization
Full audit trail neededEvent Sourcing (L3)Event stream naturally supports audit

Domain Partitioning + Microservice Splitting

Domain Classification (Core / Generic / Supporting)

Domain TypeInvestment StrategyArchitecture RecommendationExamples
Core Domain (核心域)Max investment, build in-houseHexagonal / Clean / COLA with rich domain modelOrder management, Payment processing, Pricing engine
Generic Domain (通用域)Purchase or open-source reuseLayered or off-the-shelf SaaSAuthentication, Authorization, Notification
Supporting Domain (支撑域)Outsource or low priorityLayered or simple CRUDReports, Admin dashboard, Data export

Key rule: Don't apply Hexagonal or Clean to generic/supporting domains — it wastes effort. Reserve complex architectures for Core domains only.

Microservice Splitting Rules

1. Default: One Bounded Context → One Microservice 2. Split when: Different deployment cadence, different scaling needs, different team ownership 3. Merge when: Strong transactional consistency needed, small context (< 2 weeks dev), same team 4. Start conservative: Fewer services, split as needed (proven by need, not anticipation) 5. Communication: Events for eventual consistency, RPC for strong consistency (rare)

CQRS Level Suggestion

LevelDescriptionCostArchitecture SupportWhen to Use
L0 — NoneSingle model, single DBZeroAll architectures (default)Simple CRUD, no read/write conflict
L1 — Model SeparationCommandService + QueryService, shared DBLowAll architecturesModerate read/write disparity
L2 — DB SeparationCommand DB + Read DB (ES/slave), sync via eventsMediumHexagonal / Clean / COLAHigh read volume, complex queries
L3 — Event SourcingEvent Store + Projections, full event replayHighHexagonal / CleanAudit trail, temporal queries, compliance

Recommendation: Start at L0, prove need for higher levels. L2+ should only be adopted alongside Hexagonal or Clean architectures for proper port isolation.

Architecture Skill Navigation

SelectedNext Skill
Layeredddd-architecture-layered
Onionddd-architecture-onion
Hexagonalddd-architecture-hexagonal
Cleanddd-architecture-clean
COLAddd-architecture-cola

Related: ddd-cqrs-architecture, ddd-domain-designer, ddd-architecture-evaluator

Gotchas

See references/gotchas.md for 15 pitfalls.

FAQ

See references/faq.md for 15 Q&A.

Security & Safety

This skill is pure documentation. It does not collect user data, does not access external services or networks, and contains no executable scripts.

References

See references/ for deep comparisons, microservice/domain, clean+DDD+hexagonal, ddd4j analysis, gotchas, FAQ, external resources, and 5 case studies.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.