Six contexts now stand in docs/contexts.md. Each has “Incoming” and “Outgoing”, but not yet how two contexts
relate to each other: who sets the pace, who has to adapt, who protects itself from whom? A context map shows these relationships.
It matters for the architecture as much as the boundaries themselves, because the relationships decide what a change costs.
Upstream and downstream
Between two contexts that have to do with each other, almost always one is upstream and one is downstream. The upstream one influences the downstream one, not the other way around. A simple question finds the direction:
Who has to change when the other one changes?
If the quotes change the content of their event QuoteAccepted, sales has to follow. If sales changes its stages, the
quotes notice nothing. The quotes are upstream, sales is downstream.
The direction of the dependency is often, but not always, the direction in which data flows. If sales asks the quotes for their status, data flows to sales, and the quotes are still upstream: they determine what there is to ask.