ZenWave Domain and Flow Language

dsl-kotlin provides Kotlin Multiplatform parsers for both ZDL and ZFL.
- ZDL is a Domain Specific Language (DSL) for Event-Driven Architectures. With Domain Driven Design principles built-in, it can be used to map the discoveries of an EventStorming session.
- ZFL is a flow language for modelling event-driven workflows, commands, outcomes, policies, and terminal flow states.
Both languages are designed to be developer-friendly, compact, and machine-readable so they can be parsed and converted into software artifacts such as:
- documentation
- diagrams
- API definitions like OpenAPI and AsyncAPI v2/v3
- backend implementations and tests

Usage:
<dependency>
<groupId>io.zenwave360.dsl</groupId>
<artifactId>dsl-kotlin-jvm</artifactId>
<version>${dsl-kotlin.version}</version>
</dependency>
String zdlContent = "...";
ZdlParser parser = ();
parser.parseModel(zdlContent);
;
();
flowParser.parseModel(zflContent);
NOTE: JVM version includes working ZdlParser and ZflParser implementations compiled from the Kotlin ANTLR4 target and also the Java target parser/lexer classes used by intellij-antlr-adapter.
NOTE: pending publishing to npm-registy
npm install @zenwave360/dsl
import { parseZdl } from '@zenwave360/dsl';
import { parseZfl } from '@zenwave360/dsl';
const zdlContent = "...";
const zdlModel = parseZdl(zdlContent);
const zflContent = "...";
const zflModel = parseZfl(zflContent);