methodatlas
RunsheetDomain Modeling

Context Map

ComplexityMedium
Time1-3 h
Participants2-8
FormatWorkshop + async
MaturityCanonical
01

Prerequisite

What needs to be finished first

Complete firstEvent Storming

At least one big-picture Event Storming has been done so that Bounded Contexts exist as boundary candidates.

Without: Without Bounded Contexts as input, the Context Map becomes an architectural wish list with no domain grounding.

For at least three Bounded Contexts, a canvas with responsibilities and ubiquitous language is available.

Without: Without context understanding, the mapping discussion stays superficial and integration patterns are not selected for the right fit.
02

Preparation

What needs to be ready before start

Materials

Whiteboard or Miro board with space for 5-15 Contexts; symbol set for DDD relationship patterns (Partnership, Shared Kernel, Customer-Supplier, Conformist, Anti-Corruption Layer, Open Host Service, Published Language, Big Ball of Mud); relationship lines with direction; note stickies for pain points.

People / roles

One facilitator with DDD experience; architect(s) with system overview; one Tech Lead per Context; Product Owner per Context; one scribe.

Pre-read

List of known Bounded Contexts with short descriptions; existing integrations (API, events, databases); known pain points (rework, inconsistencies, long release cycles); team organization per Context.

Time needed

3-4 h for medium domains, 1 day for complex domains

Setup

Place Contexts as circles on the wall. Show a legend with the patterns. Announce the rule: relationships are asymmetrical, arrows point from downstream to upstream (dependency).

03

Core question

The one question this method answers

Which Bounded Contexts exist, how are they integrated, where does friction and model drift occur, and which relationship patterns are appropriate?

04

Flow

Marker: Phase

StepDurationActionHint
1Phase 1: Inventory Contexts
30 minPlace all known Bounded Contexts as circles on the wall. Assign an owner team and short responsibility per Context. Mark duplication or overlap explicitly.If 25 Contexts appear, granularity is too fine. Focus on strategic level, do not include technical modules as separate Contexts.
2Phase 2: Identify Relationships
60 minAsk for each Context pair: is there a relationship (data, events, API). If yes, draw an arrow (upstream to downstream). Record strength and type of the relationship.If every Context is connected to every other context, modularization has failed or the map is too coarse. Make both visible and avoid overpainting.
3Phase 3: Assign Patterns
60 minChoose the matching pattern for each relationship: Partnership (equal standing), Shared Kernel (shared code), Customer-Supplier (downstream negotiates), Conformist (downstream accepts), ACL (downstream protects itself), Open Host Service, Published Language, Big Ball of Mud (anti-pattern).Patterns are not wishes, they are diagnostics. If the current reality is a Big Ball of Mud, mark it honestly. Document target patterns separately.
4Phase 4: Pain Points and Target State
45 minMark pain points on relationships (long releases, bug risk, duplicate models). For each top 3 pain point, define a target relationship type and measures.Target state is not 100% clean, it is a pragmatic improvement within 6-12 months. Introducing ACL is often the first step.
5Phase 5: Strategy and follow-ups
30 minDerive strategic consequences: which teams take over which relationship, which refactorings are needed, and which platform capabilities are missing. Add the top three measures with owner and deadline.A Context Map without follow-up actions is map tourism. Define at least three measures with success indicators and a 3-month deadline.
05

Artifact

What comes out at the end

Form

Context Map as a diagram with Contexts, relationships, and patterns, plus a table of pain points, target patterns, and actions. Includes team ownership and references to ADRs.

Versioning / ownership

Create one version per iteration with a date. Archive the previous version. Document changes to relationship types with rationale. Linking to ADRs is required.

Tool alternatives
  • Miro or Lucidchart with DDD template
  • draw.io with Strategic Design stencils
  • Structurizr with built-in DDD notation
  • Markdown plus a Mermaid diagram in the architecture folder
  • Context Mapper (DSL-based, contextmapper.org)

context-map-working-template.md

Compact working template for Context Map with context, input, output artifacts, and next step.

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

  • Context Map:
  • Integration Patterns:
  • Boundary Notes:

Open questions

  • ...

Next step

Owner, date, success signal.

06

Example output

Concrete filled scenario, fictional example

context-map-beispiel.md

Concrete filled scenario, fictional example

Context Map - Workspot Platform, May 2026

Contexts (excerpt)

  • Ordering (Team Booking)
  • Payment (Team Money)
  • Inventory (Team Spaces)
  • Identity (Team Platform)
  • Customer Communication (Team Growth)
  • Billing (Team Money, Conformist towards external ERP)

Relationships

  • Ordering -> Payment: Customer-Supplier with Open Host Service (REST). Ordering is downstream, Payment defines the API.
  • Ordering -> Inventory: Partnership (both teams are equal, shared reservation language model).
  • Ordering -> Identity: Conformist (Ordering uses Identity user model unchanged).
  • Billing -> external ERP: ACL inserted, protecting its own domain model.
  • Customer Communication -> Ordering: Published Language (event stream BookingPlaced as contract).

Pain Points

  • Ordering and Inventory have divergent Stock models and daily inconsistencies. Current state is a Big Ball of Mud; target is Partnership with Shared Kernel for the Stock aggregate.
  • Billing ACL leaks: ERP-specific fields appear in the local model.

Top Measures

  • CM-01: Define Shared Kernel for the Stock aggregate. Owner: @lisa (Spaces) and @ben (Booking), by 07/31.
  • CM-02: Refactor Billing ACL and clean the mapper-based model entry. Owner: @anna, by 06/30.
  • CM-03: Version the Customer-Communication contract (event schema). Owner: @marcus, by 06/15.
07

Pitfalls

Recognize symptoms and steer against them

Trap

Technical modules as Contexts

Symptom

The map shows 20 microservices as Contexts and loses domain anchoring.

What to do

Apply Strategic Design, not service topology. Align Contexts to business capabilities. Multiple services can belong to one Context.

Trap

Relationship without pattern

Symptom

Arrows show connections, but no one names the pattern.

What to do

The pattern is mandatory for each arrow. If it is not assignable, the relationship is unclear. Mark Big Ball of Mud; do not hide it.

Trap

Wish map instead of reality map

Symptom

The map shows the target state, while reality differs and pain points are missing.

What to do

Use two maps: current and target. Keep pain points in current. Treat follow-up actions as a bridge. Otherwise the discussion loses grounding.

Trap

Missing owners

Symptom

Contexts have no owner team and no one can negotiate the relationships.

What to do

An owner team per Context is mandatory. If no team is responsible, the team topology has a gap. The Context Map exposes this gap.

Trap

Inflated ACL usage

Symptom

Every relationship gets ACL, even where no actual need exists.

What to do

Use ACL only where model protection is actually needed. If both sides align, an Open Host Service or Partnership is often simpler.

08

Stop criteria

Done signals checkable in under a minute

No Bounded Contexts identified, EventStorming missing.
Owner teams for most Contexts are not named, leaving the map anonymous.
Real relationships are unknown due to missing integration documentation and tracking.
No change decider is present, so actions stay recommendations.
The domain is too young, Contexts are not stable, and the map becomes outdated immediately.
Architecture is planned for deep redesign in 6 months, so the investment becomes wasteful.

Finished the runsheet?

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