Intro

The main goal of Camundala is to use your Domain as much as possible in your Process Automation.

Define the Domain and let Camundala do most of the rest.

I gave a talk at the Camunda Community Summit 2022 that covers the basics - well, the DSLs got a bit nicer since then😉. Check out here Domain Driven Process Development

Why the Focus on the Domain?

Common Language

What have Users, Business Analysts and Developers in common?

Right, they should know the Domain that they are using or providing.

To have a common domain prevents that each team has its own domain model and speaks a (slightly) different language.

Vendor Independent

The Domain Model is specific to a Company and should not be coupled to a Software vendor or a BPMN-Provider in this case.

Specifies the Process

A Process, but also for example a User Task, can be described via its inputs and outputs, which must of course reflect your Domain.

So from the outside all you need to know, is how to interact with your process. And this how can we describe perfectly with domain objects.

Reusable

If for example you provide the domain objects for your processes, everyone can reuse them, when interacting with your processes or developing processes in the same domain.

Design

Design

The design consists of three Layers:

  1. Domain Specification

    Defines your Domain that is needed to run the Process and interact with it.

  2. BPMN DSL

    Adds your Domain Model to concrete BPMN elements, like Process or User Task.

    DSL stays for Domain Specific Language.

  3. Function DSLs

    Different DSLs that add the functionality. We have the following DSLs at the moment:

    • api: Create a documentation from your Domain Models.
    • simulation: Run integration- and/ or load Tests with your Domain Models.

    There are more, but only in an experimental state:

    • dmn: Create the configurations for the DMN Tester.
    • camunda: Generate some of your Process Specification.

Technology

We use Scala 3 for everything, except the Process Specification (BPMN).

Technology

Getting Started

Just go through the pages:

  1. Process & Domain Specification
  2. BPMN DSL
  3. Functionality DSLs