A DSL for Context Mapping & Service Decomposition

ContextMapper is an open source project providing a Domain-specific Language (DSL) based on Domain-Driven Design (DDD) patterns for context mapping and service decomposition.

Learn more

What is Context Mapper?

Context Mapper provides a DSL to create context maps based on Domain-driven Design (DDD) and its strategic patterns. DDD and its bounded contexts further provide an approach for decomposing a domain into multiple bounded contexts. With our Service Cutter integration we illustrate how the Context Mapper DSL (CML) can be used as a foundation for structured service decomposition approaches. Additionally, our context maps can be transformed into PlantUML diagrams.


Domain-driven Design DSL

Easy to understand, Xtext-based, DSL for context mapping. Start by installing our Eclipse Plugin using the update site. Checkout our docs and examples for an introduction into our language. Note: This project and the CML language is still work in progress. Feedback an contributions helping us to improve the language is very welcome!

Service Decomposition with Service Cutter

Transform your CML models into Service Cutter input and evaluate the boundaries of your contexts to achieve high cohesion and loose coupling between your service boundaries. Future work: Within our next projects we aim to propose other structured service decomposition approaches based on this DSL!

Generate plantUML Diagrams

Use your context map to generate UML component diagrams visualizing the relationships between your bounded contexts. Additionally you can generate UML class diagrams for all your bounded contexts. Our Context Mapper DSL may be used to generate other graphical representations or code (for example microservice stubs) in the future.