Markdown Editor

Core Domain Chart Template

Core, supporting and generic classification: differentiation and complexity scores, quadrant chart, findings, expected movement, decisions

АрхітектураСтандартDDD Crew Core Domain Charts; Domain-Driven Design (Evans)coredomainchart

Як використовувати: Use it when deciding where to invest, buy or simplify across bounded contexts. Agree the scoring scale first and score with engineers and business people together. The main pitfall is treating the chart as a permanent label instead of reviewing expected movement.

Перегляд

Core Domain Chart: [Domain or product area]

Classification of the subdomains or bounded contexts in one product area as core, supporting or generic, by plotting each one on two dimensions: how much it differentiates the business and how complex it is to model and run. The chart drives where to invest the best people, where to buy or outsource, and in which order to migrate. Structure informed by the Core Domain Charts technique of the DDD Crew and by the strategic design ideas of Domain-Driven Design (Eric Evans). Replace every [bracketed] value and every row marked Example. Worked examples use an invented online grocery retailer, the same one used in the Context Map template (architecture/context-map).

FieldValue
Domain / scope[Online grocery: basket to doorstep]
Chart question[Where do we invest, buy or simplify in the next 12 months?]
Unit plotted[Subdomains / Bounded contexts / Business capabilities]
Version[0.1]
Status[Draft / Agreed / Superseded]
Owner[@domain-architect]
Workshop participants[@product-lead], [@engineering-leads], [@finance-partner]
Workshop dateYYYY-MM-DD
Next reviewYYYY-MM-DD
Related documentsContext Map (architecture/context-map), Bounded Context Canvases (architecture/bounded-context-canvas), Team Interaction Map (architecture/team-interaction-map)

1. Purpose and decision supported

[Purpose statement. Example: The retailer plans to replace its legacy order management system and to hire two new teams next year. The chart answers three questions for the leadership group: which contexts deserve in-house investment, which should be bought or kept simple, and which context to tackle first in the migration.]

Decision owner: [@cto]. Decision due: YYYY-MM-DD.

2. Scoring scale

Score each clue from 1 (low) to 5 (high). The dimension score is the simple average of its clues.

Business differentiation (D)

ClueQuestion to answer
D1How hard would it be for a new market entrant to match this capability?
D2How hard would it be for an established competitor to match it?
D3How much advantage (revenue, loyalty, brand) does it give us today?
D4How much advantage could it give us if we invested further?

Complexity (C)

ClueQuestion to answer
C1Essential complexity: how hard is the domain itself to model, with its rules, calculations and decisions?
C2Accidental complexity: how much harder is the current solution than the problem requires?
C3Operational complexity: how much difficult work happens around the software (manual processes, scale, specialist knowledge)?

Classification rule used in this chart

ClassRule (Example thresholds, agree your own)Usual investment stance
CoreD at or above 3.5Build in-house with the strongest team, model carefully, protect with clear boundaries
SupportingD from 2.0 to below 3.5Build simply or customise a product, avoid over-engineering
GenericD below 2.0Buy, use a managed service or open source, adapt to it rather than the reverse

A high C2 score on a context with low D is a warning sign: the business is paying for complexity that brings no advantage.

3. Scoring register

IDContextD1D2D3D4D (avg)C1C2C3C (avg)ClassMain argument
CDC-01Example: Catalogue32232.502322.33SupportingRanges matter, but product data handling is industry standard
CDC-02Example: Basket and Checkout44343.753333.00CoreSubstitution preferences at checkout are a known reason customers stay
CDC-03Example: Slot Booking54544.505344.00CoreNarrow one-hour slots with dynamic capacity are the main brand promise
CDC-04Example: Fulfilment55454.754454.33CorePicking accuracy and freshness drive repeat orders; heavy operational work
CDC-05Example: Payments11211.253222.33GenericCard processing is a commodity; refunds logic is the only local rule
CDC-06Example: Legacy OMS22121.752533.33GenericOrder records and invoices are standard; complexity is almost all accidental
CDC-07Example: Notifications11121.251211.33GenericMessages to shoppers can use any managed messaging service
[CDC-NN][Context][1-5][1-5][1-5][1-5][avg][1-5][1-5][1-5][avg][Class][Argument]

4. Chart

Positions use x = (D - 1) / 4 and y = (C - 1) / 4, rounded to two decimals.

Contextxy
Example: Catalogue0.380.33
Example: Basket and Checkout0.690.50
Example: Slot Booking0.880.75
Example: Fulfilment0.940.83
Example: Payments0.060.33
Example: Legacy OMS0.190.58
Example: Notifications0.060.08

5. Findings

IDFindingEvidenceImplication
F-01Example: Two core contexts (Slot Booking, Fulfilment) also carry the highest complexityCDC-03, CDC-04Both need stable, senior, stream-aligned teams and careful models
F-02Example: Legacy OMS is the only context above 0.5 complexity that is genericCDC-06, C2 = 5Complexity is accidental; replacing it is a cost and risk play, not a differentiation play
F-03Example: Payments has some local refund rules but no advantageCDC-05Keep refund rules thin; do not let a provider model leak into checkout
[F-NN][Finding][Rows][Implication]

6. Expected movement

ContextTodayExpected in [24 months]Driver of movementSignal to watch
Example: Basket and CheckoutCoreSupportingCompetitors are copying substitution preferencesTwo major competitors offer the same feature
Example: Slot BookingCoreCoreDynamic slot pricing is plannedShare of orders in premium slots
Example: Legacy OMSGeneric, high accidental complexityRetiredMigration to new Order context and a bought invoicing servicePercentage of orders still flowing through OMS
[Context][Class][Class][Driver][Signal]

7. Decisions and actions

IDDecision or actionBased onOwnerRecordDue
ACT-01Example: Put the two new teams on Slot Booking and Fulfilment, not on OMS replacementF-01@ctoADR-040YYYY-MM-DD
ACT-02Example: Replace OMS invoicing with a bought service, migrate order state to a new Order contextF-02@platform-leadADR-031YYYY-MM-DD
ACT-03Example: Keep Payments as a thin wrapper around the provider, with an anticorruption layerF-03@payments-leadContext Map REL-05YYYY-MM-DD
[ACT-NN][Action][Finding][@owner][Link]YYYY-MM-DD

8. Migration order view (optional)

OrderContextDifferentiation (D)Ease of extraction (1 hard to 5 easy)Reason for position
1Example: Slot Booking4.504Already behind an API; high value proves the new platform
2Example: Basket and Checkout3.753Depends on Catalogue prices; needs an anticorruption layer first
3Example: Legacy OMS order state1.751Largest data migration; done last with a strangler approach
[N][Context][D][1-5][Reason]

Glossary and references

  • Core domain: the part of the business where better software gives the largest advantage and where in-house modelling effort pays back most.
  • Supporting subdomain: needed by the core and specific to the business, but not a source of advantage on its own.
  • Generic subdomain: a problem many organisations share, usually best served by a product or service.
  • Essential, accidental and operational complexity: complexity of the problem itself, of the current solution beyond what the problem needs, and of the work around the software.

References:

  • DDD Crew, Core Domain Charts, https://github.com/ddd-crew/core-domain-charts (technique, clue questions and variants; checked 2026-10-30).
  • Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley, 2003 (strategic design, core domain distillation).
  • Related templates: Context Map (architecture/context-map), Bounded Context Canvas (architecture/bounded-context-canvas), EventStorming Summary (architecture/event-storming-summary), Domain Message Flow (architecture/domain-message-flow), Build vs Buy Analysis (architecture/build-vs-buy-analysis).

Standard and licence note

Structure informed by the Core Domain Charts technique published by the DDD Crew (https://github.com/ddd-crew/core-domain-charts). As checked on 2026-10-30, the repository README states CC BY 4.0 while its licence file states CC BY-SA 4.0. This template does not copy the chart image or its text: the scoring scale, classification thresholds, tables and examples are original to this collection, and the technique is cited by name only. Core, supporting and generic subdomains are concepts from Domain-Driven Design by Eric Evans. Template licence: MIT.

Схожі шаблони