Model types
Context Map
A Context Map shows the bounded contexts in your system and, more importantly, the relationships between them. It is the strategic view: who depends on whom, who translates, and where the friction is.

The elements
| Element | Symbol | What it is |
|---|---|---|
| Bounded Context | ![]() |
A boundary within which a model is relevant and its language is consistent. |
| Big Ball of Mud | ![]() |
A legacy or tangled area with no coherent model. Naming it is not an insult; it calls out the need to integrate cautiously. |
| Bubble Context | ![]() |
A small, clean context carved out inside a Big Ball of Mud. Only available while a Big Ball of Mud is selected. |
| Interchange Context | ![]() |
A context that exists to mediate between others. |
| Note | ![]() |
Commentary on a part of a model. |
Relationships
Drag a line from one context to another to draw a relationship, then classify it. Each pattern has its own color and line style, and carries the badge on the edge:
| Pattern | Badge | Meaning |
|---|---|---|
| Partnership | ![]() |
Two teams succeed or fail together and coordinate closely. |
| Shared Kernel | ![]() |
A deliberately shared subset of the model; owned by one team but changed only upon agreement by sharers. |
| Customer / Supplier | ![]() |
Downstream team's needs are addressed at the upstream team's discretion. |
| Customer side | ![]() |
Customer is downstream with the possibility to negotiate model changes by the upstream. |
| Supplier side | ![]() |
Supplier is upstream with the power to veto the customer's requests or to deliver some/all on their own schedule. |
| Conformist | ![]() |
Downstream passively adopts the upstream model as-is, without an attempt to translate. |
| Anticorruption Layer | ![]() |
Downstream defensively translates the upstream model into its own terms, protecting itself from model corruption. |
| Open Host Service | ![]() |
Provider publishes a well-defined service for all integrators. |
| Published Language | ![]() |
A shared, documented interchange language; may be an externally established standard or internally defined. |
A single relationship can carry more than one pattern; Open Host Service together with Published Language is the common pair. Directional patterns can be reversed when you drew the edge the other way round.

Where a Context Map comes from
You can draw one from scratch, but most start life generated from an EventStorming model: each subdomain becomes a bounded context with its elements attached. The toolbar then carries a button back to the source model, and in manual sync mode a second button for reviewing the changes that are waiting to be applied.
Each bounded context also holds a behavior model: the commands, events, and policies inside it. That list is the union of what EventStorming contributed and what a Domain Model built from this context contributed, so the two sources add to it rather than overwriting each other.
Keyboard
| Key | Symbol | Element |
|---|---|---|
B |
![]() |
Bounded Context |
M |
![]() |
Big Ball of Mud |
U |
![]() |
Bubble Context (with a Big Ball of Mud selected) |
I |
![]() |
Interchange Context |
T |
![]() |
Note |
Going deeper
From a bounded context you can create a Domain Model to work out the tactical design inside the boundary.













