Skip to content
CONTEXT MAPPER
  • Docs
  • Language Reference
  • Generators
  • News
  • Background
  • Get Involved
    Introduction
    • Welcome
    • Getting started
    • Create CML Project
    • Examples
    • Usage as Library
    • Frequently Asked Questions
    Language Reference (Core)
    • CML Reference - Introduction
    • Language Semantics
    • Context Map
    • Bounded Context
    • Domain and Subdomain
    • Domain Vision Statement
    • Partnership
    • Shared Kernel
    • Customer/Supplier
    • Conformist
    • Open Host Service
    • Anticorruption Layer
    • Published Language
    • Responsibility Layers
    • Knowledge Level
    • Aggregate
    • Tactic DDD Syntax
    • Application and Process Layer
    • User Requirements
    • Stakeholders
    • Value Registers
    • Imports
    Analysis and Design Transformations
    • Rapid Object-oriented Analysis and Design
    • Story Splitting (PoC)
    • Stakeholder and Value Modelling Transformations
    Architectural Refactorings (ARs)
    • Architectural Refactorings
    • AR-1: Split Aggregate by Entities
    • AR-2: Split Bounded Context by Features
    • AR-3: Split Bounded Context by Owner
    • AR-4: Extract Aggregates by Volatility
    • AR-5: Extract Aggregates by Cohesion
    • AR-6: Merge Aggregates
    • AR-7: Merge Bounded Contexts
    • AR-8: Extract Shared Kernel
    • AR-9: Suspend Partnership
    • AR-10: Change Shared Kernel to Partnership
    • AR-11: Change Partnership to Shared Kernel
    Value-Driven Analysis and Design
    • Value-Driven Analysis and Design (VDAD) Support
    Service Cutter
    • Context Map Suggestions with Service Cutter
    • Service Cutter Configuration File (.servicecutter.yml)
    Reverse Engineering
    • Context Map Discovery
    Generators
    • Generators Overview
    • Context Map Generator
    • PlantUML Generator
    • BPMN Sketch Miner Generator
    • MDSL (Micro-)Service Contracts Generator
    • Service Cutter Generators
    • Generic Generator (Templating)
    Tutorials
    • Model Event Storming Results in Context Mapper
    • Event Sourcing and CQRS Modeling in Context Mapper
    • Generate Microservices From Context Map Using JHipster
    • Systematic Service Decomposition with Context Mapper and Service Cutter
    • Validating the Implementation against the Model (with ArchUnit)
    IDE Plugins and Extensions
    • Visual Studio Code Extension
    • Online IDE (no longer supported)
    • Eclipse Plugin
    • Feature Support

    CML Reference - Introduction

    This section of the online documentation covers all supported DDD patterns and the corresponding CML language features.

    Semantic Model

    The Language Semantics page contains a diagram illustrating the domain model on which the CML language is based. It helps to understand the structure of the language and semantics (for instance, the difference between bidirectional, symmetric context relationships and directed upstream-downstream relationships).

    The Language Model page further describes all implemented semantic rules in textual form.

    Strategic DDD Patterns

    The following strategic DDD patterns are supported by CML. For detailed descriptions of the patterns itself we refer to Evan’s original DDD book (“the blue book”) and his free DDD reference.

    The syntax and semantic rules of all the patterns are documented on their individual pages:

    • Context Map
    • Bounded Context
    • Subdomain (Core, Supporting, Generic)
    • Domain Vision Statement
    • Partnership (P)
    • Shared Kernel (SK)
    • Customer/Supplier (C/S)
    • Open Host Service (OHS)
    • Published Language (PL)
    • Conformist (CF)
    • Anticorruption Layer (ACL)
    • Responsibility Layers
    • Knowledge Level

    Tactic DDD Patterns

    The tactic DDD part of the CML language(all grammar rules inside Aggregatess that is), are based on the Sculptor DSL. Thus, we refer to the Sculptor documentation for details regarding the tactic DDD patterns.

    The most important tactic DDD patterns that we use in our transformations (for instance, plantUML generation) are the following:

    • Module
    • Aggregate (and Aggregate Root)
    • Entity
    • Service
    • Value Object
    • Domain Event
    • Command

    The following patterns can be used in CML models as well (but currently are not processed by in any transformation):

    • Repository

    Note: Our Aggregate pattern implementation is different from the one in Sculptor; it does not correspond to Sculptor’s implementation. Therefore it is documented here.

    Additional Language Features

    The following (not DDD specific) language features are supported by CML as well:

    • Application and Process Layer
      • Model application services and commands that are triggered from outside your Bounded Context
      • Model processes and event/command flows (for example as an outcome of an Event Storming: bring commands and events into a timeline)
    • User Requirements (Use Cases and User Stories)
      • Used for the Architectural Refactoring (AR) Split Bounded Context by Use Cases and our Rapid OOAD tools.
    • Imports to include other CML files
    Improve this page on GitHub
    ← PreviousFrequently Asked Questions Next →Language Semantics
    © 2026 Context Mapper contributors
    • GitHub
    • Get Involved
    • Background & Publications
    • RSS