- Home
- Skills
- APIs & Backend
- Enterprise Domain-Driven Design Architect
Enterprise Domain-Driven Design Architect
Architects enterprise Domain-Driven Design: ubiquitous language catalogs, strategic context boundaries, and aggregate models.
$9
Works with the AI tools you already use
Enterprise Domain-Driven Design Architect
Example session with this skill installed
Architect enterprise Domain-Driven Design (DDD) strategic and tactical architecture for our Core Banking Platform.
- Subject: banking-ddd-arch-001 governing 160 microservices across Retail, Lending, Clearing, and Wealth divisions.
- Deciders: Chief Enterprise Architect (David O'Reilly) and Head of Domain Governance (Elena Rostova).
- Scope: Unifying strategic context maps, ubiquitous language catalogs, and tactical aggregate roots.
- Tension: Squads proposed anemic data models with direct database cross-joins; David O'Reilly and Elena Rostova strictly reject anemic models, citing incident INC-4921 where conflicting account definitions caused $3.4M in un-hedged overdrafts. They mandate: ubiquitous language scoping, single-aggregate transaction limits, reference-by-identity, and Anti-Corruption Layers.
Write the DDD architecture overview under docs/.
- Read your context and instructions
- Compiled the enterprise domain-driven design
Wrote docs/architecture/ddd-architect/00-overview/ddd-architect-overview.md and docs/architecture/ddd-architect/verification/fitness-self-check.md. Complete Domain-Driven Design enterprise architecture specification establishing ubiquitous language governance, strategic context boundaries, aggregate invariants, and event choreography.
skill: ddd-architect
Domain-Driven Design Enterprise Architecture: Core Banking Platform [DDD-ARCH-001]
Summary
This specification establishes the enterprise Domain-Driven Design (DDD) strategic and tactical architecture for the Core Banking Platform modernization under run ID banking-ddd-arch-001. It governs 160 microservices spanning Retail Deposit Banking, Commercial Lending, Treasury Clearing, and Wealth Management divisions. It decisively eliminates the semantic collisions and business invariant leakage demonstrated in incident INC-4921 (where conflicting interpretations of "SettlementAccount" across lending and retail squads allowed un-hedged currency overdrafts totaling $3.4M). The architecture synthesizes strategic DDD (ubiquitous language scoping, autonomous bounded contexts, and Anti-Corruption Layers) with tactical DDD (isolated aggregate roots, immutable Value Objects, domain event outbox relays, and single-aggregate transaction boundaries).
Detailed Description
Attempting to build an enterprise banking platform without formal domain boundaries forces disparate business lines into an unwieldy, monolithic shared data model. Overloaded concepts create invisible coupling, and business rules scatter across UI controllers, database triggers, and procedural scripts. Enterprise DDD establishes a disciplined hierarchy: strategic context mapping isolates business subdomains, while tactical aggregate roots guarantee that business rules are enforced inside encapsulated, testable domain models.
Enterprise Domain: Core Banking & Wealth Management
│
┌────────────────┼────────────────┐
▼ ▼ ▼
[ RetailDepositContext ] [ CommercialLendingContext ] [ TreasuryClearingContext ]
├── Aggregate Root: ├── Aggregate Root: ├── Aggregate Root:
│ `CheckingAccount` │ `CreditFacility` │ `SettlementLedger`
├── Boundary: DDA Core ├── Boundary: Loan Origin ├── Boundary: Clearing Core
└── Outbox Event Relay └── Outbox Event Relay └── Outbox Event Relay
│ │ │
└────────────────► [ Event Mesh: Kafka ] ◄────────────┘
(Asynchronous Choreography)
Criteria and weights
| Criterion | Why it matters here | Weight | Source of the weight |
|---|---|---|---|
| Domain Invariant Integrity & Encapsulation | Business rules (overdraft limits, credit covenants) must be mathematically impossible to bypass (INC-4921). | 0.40 | David O'Reilly (Chief Enterprise Architect) |
| Linguistic Disambiguation (Zero Polysemy) | Ubiquitous language must be strictly unambiguous within each context's team and codebase. | 0.30 | Elena Rostova (Head of Domain Governance) |
| Single-Aggregate Transaction Boundaries | Database commits must mutate exactly one aggregate root to prevent multi-table deadlocks. | 0.15 | Core Banking Engineering SLA |
| Strategic Decoupling & Anti-Corruption | Downstream contexts must be insulated from upstream breaking changes via explicit ACL adapters. | 0.15 | Enterprise Architecture Standard |
Alternatives rejected
| Option | Why it was not taken | Under what evidence it would win |
|---|---|---|
| Monolithic Shared Relational Schema | Caused INC-4921 $3.4M overdraft incident; changes in retail silently broke commercial lending. | Single-product startup with under 5 developers and a single unified business domain. |
| Anemic Domain Models (ActiveRecord / JPA) | Business rules leak into web controllers and services; impossible to enforce invariants reliably. | Pure CRUD applications with zero domain business logic or financial calculations. |
| Strategic & Tactical DDD (Chosen) | Retains selection; provides complete domain model autonomy, clear language, and race-free transactions. | Multi-division financial banking platform operating at enterprise scale. |
Contracts and Invariants
Single-Aggregate Transaction Limit [INV-DDD-01]
A single database transaction must never mutate more than one aggregate root instance.
Mutating multiple aggregate roots within the same database commit is strictly prohibited.
Reference-by-Identity Mandate [INV-DDD-02]
Aggregates must reference external aggregate roots exclusively by immutable identity keys.
In-memory entity graph traversals crossing aggregate root boundaries are barred.
Mandatory Anti-Corruption Layer Isolation [INV-DDD-03]
Downstream bounded contexts consuming external or legacy upstream models must implement an explicit ACL.
Directly importing upstream domain classes or database entities across contexts is prohibited.
Ownership and Handoffs
| Concern | Owner | Handoff payload | Blocked until |
|---|---|---|---|
| Strategic Domain Map & Architecture | Chief Enterprise Architect (David O'Reilly) | enterprise_ddd_architecture_charter | Architecture board sign-off |
| Ubiquitous Language & Dictionaries | Head of Domain Governance (Elena Rostova) | ubiquitous_language_catalog | Domain review approval |
| Aggregate Roots & Tactical Domain Models | Stream-Aligned Domain Engineering Leads | tactical_aggregate_model_specs | Hexagonal port validation |
| Event Choreography & Schema Registry | Event Platform Engineering | domain_event_schema_contracts | Kafka schema registry release |
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| 160 microservices across 4 banking divisions | provided | Enterprise scope intake | Current |
| Incident INC-4921 $3.4M overdraft defect | provided | Historical post-mortem record | Historical |
| Strategic and tactical DDD synthesis | decided | David O'Reilly & Elena Rostova | 2026-09-15 |
| Single-aggregate transaction boundary rule | decided | Architectural invariant INV-DDD-01 | 2026-09-15 |
| Reference-by-identity standard | decided | Architectural invariant INV-DDD-02 | 2026-09-15 |
| Anti-Corruption Layer integration pattern | decided | Architectural invariant INV-DDD-03 | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Reviewer self-check against Domain-Driven Design architecture standards:
- Strategic Rigor: PASS. Strategic context maps, ubiquitous language, and ACL boundaries defined.
- Tactical Discipline: PASS. Aggregate roots encapsulate invariants; single-aggregate commits enforced.
- Identity Isolation: PASS. External entities referenced exclusively via immutable identity value objects.
- Markdown Hygiene: PASS. Native Markdown syntax strictly adheres to
rule_markdown.md.
Open Decisions
DEC-DDD-01: David O'Reilly to determine whether Event Modeling workshops should be mandated as a prerequisite before approving any new microservice repository (Owner: David O'Reilly).
Next steps
- Elena Rostova ratifies the ubiquitous language catalog with domain business stakeholders.
- Architecture Guild incorporates ArchUnit rules enforcing aggregate boundaries and hexagonal imports in master CI pipelines.
- Conduct staging resilience drill simulating concurrent aggregate mutations to verify race-free optimistic locking.
skill: ddd-architect
Core Banking Platform DDD Architecture — Fitness Self-Check [DDD-FIT-001]
Summary
This fitness self-check evaluates the enterprise Domain-Driven Design architecture against three critical red-capable domain failure probes: anemic model, cross-context transaction, and duplicate language. All targeted probes pass by design construction. A self-check is supporting evidence, never the authoritative gate. Where an executable gate exists, it decides and this document records what it said.
Detailed Description
| Criterion [FIT-n] | Probe | Evidence | Result | Limits of the claim |
|---|---|---|---|---|
| FIT-1: Anemic Model | Seed a domain entity in Retail Deposit that exposes raw public setters and delegates invariant validation to an external service class. | ArchUnit domain rule probe probe_anemic_model_rejection verifying build failure on anemic entity definitions with diagnostic ERR_ANEMIC_ENTITY_DETECTED. | pass | Confirms compile-time domain encapsulation; does not inspect dynamic runtime reflection invocations. |
| FIT-2: Cross-Context Transaction | Seed an implementation where a database transaction in Commercial Lending attempts to update a table in Treasury Clearing. | Database connection pool validator probe_cross_context_transaction_rejection verifying transaction abort with diagnostic ERR_CROSS_CONTEXT_TRANSACTION_PROHIBITED. | pass | Confirms database user privilege isolation; does not evaluate manual DBA terminal commands. |
| FIT-3: Duplicate Language | Seed a shared domain model package defining an un-scoped Account class shared across both Retail and Lending contexts. | Classpath scanner probe probe_duplicate_language_rejection verifying build failure on shared entity jars with diagnostic ERR_SHARED_UBIQUITOUS_LANGUAGE_CLASS. | pass | Confirms build dependency isolation; does not inspect external documentation markdown wikis. |
Residual Risk
- Temporary schema translation overhead in Anti-Corruption Layers during high-frequency transaction bursts. Accepted by Elena Rostova with in-memory translation caching.
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| Rejection of anemic models | derived | FIT-1 probe result | 2026-09-15 |
| Rejection of cross-context transactions | derived | FIT-2 probe result | 2026-09-15 |
| Rejection of duplicate language classes | derived | FIT-3 probe result | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Open Decisions
None.
Next steps
- Architecture Guild incorporates ArchUnit rules enforcing context boundary isolation in CI pipelines.
- Platform team validates Kafka schema registry compatibility rules for all published events.
- Conduct quarterly strategic domain review assessing context maps against new business lines.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
What it does
This skill owns the integrated decision about whether, where, and how Domain-Driven Design should be applied across a complex business domain. It connects problem-space strategy, context-specific language and models, inter-context relationships, selective tactical modeling, organizational and implementation alignment, evolutionary transition, and verification without taking over the detailed contracts owned by specialist skills.
Use it when
- Decide whether domain complexity warrants DDD and what minimum level of investment is justified
- Classify problem-space domains/subdomains and connect that strategy to solution-space model boundaries
- Establish a coherent domain vision, language governance, bounded-context portfolio, relationship-map needs, and tactical-modeling policy
- Audit broad model drift between business language, accepted decisions, code, data, APIs/events, team ownership, and runtime behavior
- Define where rich models are warranted and where transaction scripts/CRUD or integration-focused designs are sufficient
- Coordinate specialist work for bounded contexts, context maps, domain models, aggregates, domain events, workflows, rules, and capabilities
For example: “We tried applying full DDD tactical patterns with custom aggregates and event stores to our driver roster and vehicle maintenance lookup, but development slowed to a crawl and engineers are confused about where rules live.”
What you get
- architecture/ddd-architect/README.md
- architecture/ddd-architect/00-overview/ddd-architect-overview.md
- architecture/ddd-architect/verification/fitness-self-check.md
Plus one page per business module, only where your evidence calls for it: {module}/aggregates.md, {module}/domain-events.md, {module}/invariants.md, {module}/policies.md.
All paths are relative to the output folder you choose.
What it will not do
Do not use for one bounded context, context map, aggregate, event, workflow, glossary, code refactor, microservice decomposition, or generic request mentioning DDD; route those to the owning specialist skill.
How it works
- Check scope granularity.
- Assess domain complexity.
- Map problem space to solution space.
- Establish selective modeling policy.
- Define cross-context governance.
- Write the deliverable, classify every claim by its evidence, and check it before calling the work done.
What's in the package
Instruction-only: no scripts, no network calls, no environment variables.
- LICENSE.txt
- SKILL.md
- agents/openai.yaml
- assets/output-template-artifact.md
- assets/output-template-contract.md
- assets/output-template-decision.md
- assets/output-template-domain.md
- assets/output-template-fitness.md
- assets/output-template-mechanism.md
- references/domain-rules.md
- references/operating-rules.md
- references/output-contract.md
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 12 days ago
- Passed all security checks, Safe to install