Technologies

Our goal is to keep the dependencies to a minimum. We group them to our Modules. The following Open Source Projects are great and are worth the extra dependency:

camundala-domain

Tapir

With tapir, you can describe HTTP API endpoints as immutable Scala values.

We are using this to describe our domain models. Tapir allows us to generate the Open API specification from the models.

Circe

circe (pronounced SUR-see, or KEER-kee in classical Greek, or CHEER-chay in Ecclesiastical Latin) is a JSON library for Scala (and Scala.js).

We use Circe to encode our domain models to JSON and decode them back. This is used by Tapir to generate the specifications and the Simulations to run the REST calls.

camundala-bpmn

Depends on: camundala-domain

OS-Lib

OS-Lib is a simple Scala interface to common OS filesystem and subprocess APIs. OS-Lib aims to make working with files and processes in Scala as simple as any scripting language, while still providing the safety, flexibility and performance you would expect from Scala.

camundala-api

Depends on: camundala-bpmn

scala-xml

The standard Scala XML library.

We use it for the reference resolutions in the BPMNs.

Typesafe Config

Configuration library for JVM languages.

For all configurations, that are not directly in Scala, we use this library. At the moment this is PROJECT.conf (Project Documentation) and RELEASE.conf (Company Documentation).

camundala-simulation

Depends on: camundala-bpmn

sttp Client

sttp client is an open-source library which provides a clean, programmer-friendly API to describe HTTP requests and how to handle responses.

We use it to call the REST API from Camunda

camundala-dmn

Depends on: camundala-bpmn

Camunda DMN Tester

A little DMN Table tester with the following Goals:

We generate Dmn Table Tester configurations from a DSL.

sttp Client

see camundala-simulation

To use the DmnTester's REST API.