Skip to content

context-mapping

Relationship between two Bounded Contexts, or between a Bounded Context and an External System. See Concepts: Context Mapping.

A Context Mapping carries no scope – its endpoints may straddle Domains. The natural identifier of a mapping is its type plus its endpoints; name is a human-readable handle.

Fields

Field Required Description
apiVersion yes schema.esdm.io/core/v1
kind yes context-mapping
name yes The mapping name (a handle, not a referenced identifier).
type yes One of customer-supplier, conformist, anti-corruption-layer, open-host-service, published-language, shared-kernel, partnership, separate-ways.
description no Free-form prose.
metadata no Non-semantic labels and annotations.

The role-named fields depend on type. Each role accepts a Bounded Context reference or an External System reference.

Asymmetric mappings

type Required role fields
customer-supplier customer, supplier
conformist conformist, upstream
anti-corruption-layer downstream, upstream
open-host-service host, consumer
published-language publisher, consumer

Symmetric mappings

type Required role fields
shared-kernel participants (exactly two Bounded Contexts)
partnership participants (exactly two Bounded Contexts)
separate-ways participants (exactly two Bounded Contexts)

Symmetric mappings accept Bounded Contexts only; sharing a kernel or forming a partnership with a third-party External System does not fit the model.

Example

apiVersion: schema.esdm.io/core/v1
kind: context-mapping
name: round-play-to-course-catalog
type: customer-supplier
customer:
  domain: golf-club-management
  boundedContext: round-play
supplier:
  domain: golf-club-management
  boundedContext: course-catalog