Domain-Driven Design as Model Contract in Full-Stack Development
Christoph Praschl, Sophie Bauernfeind, Christian Leitner, Gerald Adam Zwettler · 2023
In this work, a domain-driven design process is proposed, allowing to define a contract regarding the structure of the used data within a multi-language full-stack application using a model-to-text transformation approach. This process is based on a metamodel, which allows for the implementation of language-specific transformers to generate representations of the data as domain models for arbitrary programming languages. It is evaluated in the context of a modern full-stack microservice architecture including a C# and Python based backend with access to a database using object-relational-mapping principles and a TypeScript based frontend, connected by a GraphQL interface. The proposed methodology is intended for an agile modelling process including automatic adaptions, but also the preservation of user-defined extensions within the generated italic-code artifacts.