Context Mapper is a modular and extensible modeling framework for Domain-driven Design (DDD) and its strategic patterns. The core component provides a DSL to create context maps featuring these DDD patterns. The model behind the language and its semantic rules express our interpretation of the DDD patterns and how these patterns can be combined in a concise and consistent manner. At present, Context Mappers comes as an Eclipse plugin (with a standalone Java library version also being available):
Eclipse Marketplace: https://marketplace.eclipse.org/content/context-mapper/
DDD and its Bounded Contexts provide an approach for decomposing a domain. With our Service Cutter integration (currently in proof-of-concept state) we illustrate how the Context Mapper DSL (CML) can be used as a foundation for even more structured service decomposition approaches. Based on its coupling criteria, Context Mapper suggests new Context Maps which may improve the architecture with respect to coupling and cohesion. Architectural Refactorings (ARs) support to decompose a Context Map in an iterative manner.
If you work on a project with an existing monolithic or (micro-)service-oriented architecture, you can use our reverse engineering library to recreate a CML context map from the existing code (architecture recovery). This library is built in an extensible fashion, allowing the implementation different bounded context and context map discovery strategies. At present, Spring Boot applications and Docker compose files can be analyzed by existing strategies.
The provided model transformations and generators allow transforming the CML context maps into other representations of the architectural model. We currently offer the following generators:
- Graphical Context Map generator based on Graphviz (supported formats: .png, .cvg., .dot),
- PlantUML component and class diagram generator
- Microservice Domain-Speciifc Language (MDSL) (micro-)service contracts generator
- Service Cutter input files generators
- Generic Textual Generator based on Freemarker Templates
Find out how to start using Context Mapper right now.