A big-picture event-storming or comparable domain discovery artifact exists from which Bounded Contexts can be derived.
Domain Context Map
Prerequisite
What needs to be finished first
At least one narrated domain story exists with actors, work objects, and handoffs, from which context boundaries become visible.
Preparation
What needs to be ready before start
Whiteboard or Miro area for boxes (Bounded Contexts), arrows (relationships), and relationship-legend (Shared Kernel, Customer/Supplier, Conformist, ACL, OHS, Published Language, Partnership); known subdomain list; owner list.
An Architect or Domain Modeler as facilitator; 3-10 participants from engineering and domain (owner per context); one scribe for boundary notes; one decider for conflicts.
Existing service landscape (documentation, repo list); subdomains from domain discovery; team topology and ownership data; known interface issues from last months.
1-3 h
Set up three wall zones: contexts, relationships, hot spots. Make DDD relationship legend visible. Rule: map shows business boundaries, not repository structure.
Core question
The one question this method answers
Which Bounded Contexts and which relationships between them shape today's domain landscape, and where are the biggest friction points?
Flow
Marker: Phase
| Step | Duration | Action | Hint |
|---|---|---|---|
1Phase 1: Identify contexts | 30-45 min | Post bounded contexts or subdomains as boxes on the wall. For each box: name, owner team, short purpose. Mark subdomain type (core, supporting, generic). | If 20+ contexts emerge, they are too fine-grained or subdomains are being conflated with microservices. Prefer 6-12 business contexts. |
2Phase 2: Draw relationships | 30-60 min | Draw arrows between context pairs and label with relationship type (for example Customer/Supplier with upstream/downstream, Conformist, ACL, Shared Kernel). Use question mark for unclear relationships. | Relationship type is not data flow direction; it is power relationship and translation need. Treating them as data flow creates wrong protective layers. |
3Phase 3: Mark hot spots | 20-30 min | Attach pink notes on relationship friction: frequent bugs, unclear ownership, semantic conflicts. Also mark unused relationships (potentially dead integrations). | Hot spots are valuable output. Expect 3-5 at minimum, otherwise discussion was too polite. Name concrete incidents, not abstract concerns. |
4Phase 4: Implications and actions | 20-30 min | Define owner and follow-up action for each hot spot (spike, ADR, interface review). At least three actions with dates. Photograph and version the map. | A map without actions is decorative. Set a follow-up review 4-6 weeks later to review actions and changes. |
Artifact
What comes out at the end
Completed context map as SVG or diagram file with boxes for each bounded context (name, owner, type), arrows with relationship types, hot spots marked, and a relationship table with description plus next actions with owner and date.
One entry per release with date and version. Keep prior maps. Mark changes (new contexts, changed relationships, resolved hot spots) as deltas. Review at least semi-annually.
- Miro or FigJam with DDD context-map template
- Structurizr DSL or C4-model tools
- draw.io or Lucidchart with versioning
- Mermaid in markdown in architecture repo
domain-context-map-working-template.md
Compact working template for Domain Context Map with context, input, output artifacts, and next step.
Domain Context Map Canvas
Context
What is this method used for?
Core question
Which question should be answered at the end?
Input
Which data, observations, or materials are available?
Working area
- Area 1:
- Area 2:
- Area 3:
- Relationships / patterns:
Output artifacts
- Domain Context Map:
- Boundary Notes:
- Ownership Map:
Open questions
- ...
Next step
Owner, date, success signal.
Example output
Concrete filled scenario, fictional example
domain-context-map-beispiel.md
Concrete filled scenario, fictional example
Context Map — Order Fulfillment Domain, 12.05.2026
Contexts
- Ordering (Core, Team A): order intake, validation, reservation.
- Payment (Supporting, Team B): payment authorization, refunds. External PSP via webhook.
- Inventory (Core, Team C): stock management, reservations, availability.
- Shipping (Supporting, Team D): shipment creation, tracking push.
- Returns (Supporting, Team A): return workflow.
- Customer (Generic, Team E): addresses, master data, consent management.
Relationships
- Ordering -> Payment: Customer/Supplier, upstream Payment. ACL in Ordering because payment API is unstable.
- Ordering -> Inventory: Partnership. Shared reservation lifecycle.
- Ordering -> Shipping: Customer/Supplier, upstream Ordering. Published Language via Kafka topic
orders.v3. - Returns <-> Ordering: Shared Kernel (Order aggregate). Source of Hot Spot #2.
- Customer -> all: Conformist (customer master data is adopted unchanged).
Hot Spots
- Pink #1: Ordering<->Payment ACL is outdated, PSP introduced new fields. Owner: @anna, ADR by 30.05.
- Pink #2: Returns/Ordering shared kernel causes recurring merge conflicts and deployment coordination. Owner: @lisa, separation spike by 14.06.
- Pink #3: Inventory partnership lacks clear conflict-resolution protocol for race conditions. Owner: @ben, RFC by 21.05.
Follow-up review: 30.06.2026.
Pitfalls
Recognize symptoms and steer against them
Technical instead of business boundaries
Contexts match microservices or repositories rather than business areas.
Derive contexts from domain discovery, not from code structure. Ask: is there distinct language and model here? If not, no context.
Data flow confused with relationship
Arrows show data flow but relationship types do not match reality.
Explain DDD relationship types (power, translation responsibility). Ask: who adapts to whom? Who translates? Then set arrow and type.
Shared kernel as workaround
Shared Kernel across many contexts, everyone changes shared model, coordination needed daily.
Treat Shared Kernel as exception only. Prefer ACL when conflicts emerge or split the kernel.
Map without hot spots
A clean and polite map with no identified frictions. Group avoids conflict.
Facilitator should ask for recent incidents, interface bugs, and escalations. Hot spots are the most valuable result.
No follow-up actions
Map is drawn, photographed, archived; in 3 months nobody remembers.
Assign an ADR, RFC, or spike for each hot spot with owner and date. Plan a fixed review date, not "when convenient."
Stop criteria
Done signals checkable in under a minute
Finished the runsheet?
Go to the profile for purpose, similar methods, and sources or continue to the next method in the catalog.