Genesis

Genesis is a software development automation framework which can generate code and other artifacts from high level models by following Model Driven Development (MDD) approach. Currently it supports generation of code from models defined using ContextMapper, an open-source tool for modeling using the strategic and tactical tools provided by Domain Driven Design (DDD). Genesis can be easily extended to support other modeling languages in the future based on need. In the current state it can support generation of artifacts for developing applications using Spring Boot and Spring Data JPA as well as a commercially available event sourcing & CQRS framework.

The diagram below illustrates the approach used by genesis to generate code. The key component of genesis is the Genesis Driver which can read DDD models defined using ContextMapper. Depending on the needs of the application being generated technology specific modules can be plugged in to the driver. The modules encapsulate the logic as well as the templates to generate the appropriate code.

    Benefits
  • Accelerates the development process through automation.
  • Enforces patterns and best practices and also ensures better quality.
  • Large scale changes in generated code can be done easily.