View on GitHub


A domain-specific language to specify (micro-)service contracts and data representations (realizing API Description pattern from MAP)

Microservices Domain Specific Language (MDSL)

Note: Work in progress, subject to change at any time!

Design Goals

Design Principles

First Example

This is the Hello World of MDSL:

API description HelloWorld

data type SampleDTO (ID, E) 

endpoint contract type HelloWorldPort
  operation helloWorld 
    expecting payload SampleDTO 
    delivering payload V<string> 

Take a look at Hello World in Swagger in comparison.

Language Features and Elements

Language Reference (Sources)


All MAPs are supported/integrated one way or another:

We also like hexagons (although octogons, as used to denote cells in CBAs, look cool too):

Solution Sketch of API Integration

  1. The two languages can be used independently of each other; for instance, data contracts for operations in contract types can also be specified in JSON Schema (or XML Schema).