methodatlas
RunsheetDomain Modeling

Domain Context Map

ComplexityMedium
Time1-3 h
Participants3-10
FormatWorkshop
MaturityEstablished
01

Prerequisite

What needs to be finished first

Complete firstEvent Storming

A big-picture event-storming or comparable domain discovery artifact exists from which Bounded Contexts can be derived.

Without: Without domain understanding, the context map becomes a technical architecture sketch without true business boundaries.
Complete firstDomain Storytelling

At least one narrated domain story exists with actors, work objects, and handoffs, from which context boundaries become visible.

Without: Without narrative groundwork, boundary decisions have no evidence and the map becomes a guess.
02

Preparation

What needs to be ready before start

Materials

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.

People / roles

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.

Pre-read

Existing service landscape (documentation, repo list); subdomains from domain discovery; team topology and ownership data; known interface issues from last months.

Time needed

1-3 h

Setup

Set up three wall zones: contexts, relationships, hot spots. Make DDD relationship legend visible. Rule: map shows business boundaries, not repository structure.

03

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?

04

Flow

Marker: Phase

StepDurationActionHint
1Phase 1: Identify contexts
30-45 minPost 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 minDraw 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 minAttach 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 minDefine 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.
05

Artifact

What comes out at the end

Form

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.

Versioning / ownership

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.

Tool alternatives
  • 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.

06

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.

07

Pitfalls

Recognize symptoms and steer against them

Trap

Technical instead of business boundaries

Symptom

Contexts match microservices or repositories rather than business areas.

What to do

Derive contexts from domain discovery, not from code structure. Ask: is there distinct language and model here? If not, no context.

Trap

Data flow confused with relationship

Symptom

Arrows show data flow but relationship types do not match reality.

What to do

Explain DDD relationship types (power, translation responsibility). Ask: who adapts to whom? Who translates? Then set arrow and type.

Trap

Shared kernel as workaround

Symptom

Shared Kernel across many contexts, everyone changes shared model, coordination needed daily.

What to do

Treat Shared Kernel as exception only. Prefer ACL when conflicts emerge or split the kernel.

Trap

Map without hot spots

Symptom

A clean and polite map with no identified frictions. Group avoids conflict.

What to do

Facilitator should ask for recent incidents, interface bugs, and escalations. Hot spots are the most valuable result.

Trap

No follow-up actions

Symptom

Map is drawn, photographed, archived; in 3 months nobody remembers.

What to do

Assign an ADR, RFC, or spike for each hot spot with owner and date. Plan a fixed review date, not "when convenient."

08

Stop criteria

Done signals checkable in under a minute

No domain preparation (event storming, domain storytelling), contexts become trial-and-error guesses.
Owner responsibility for contexts is unclear, map remains political.
System is in broad refactoring; map would be outdated in weeks.
Organization is too small (1 service, 1 team), context concept has no value.
Map is requested only as compliance artifact; no team is willing to work with it.
DDD vocabulary is unfamiliar in the team; workshop needs training first, no immediate benefit.

Finished the runsheet?

Go to the profile for purpose, similar methods, and sources or continue to the next method in the catalog.