DMN Decision Engine

Execute DMN 1.1 Decision Tables
and provide more flexibility to the business.

DMN 1.1 Support

The Decision Engine executes DMN Decision Tables as well as Decision Requirements Diagrams. View the Docs: DMN 1.1 Reference for more details.

With DMN, business stakeholders can define and maintain executable business rules themselves thereby providing great flexibility and convenience.

You can use the pre-built integration with the workflow engine in order to execute decision tables as part of an automated workflow or you can use the decision engine completely standalone, as described below.

REST API

You can access the Decision Engine via REST in order to execute decision tables and decision graphs. Check the REST API Reference for usage examples.

You can also call the Camunda History Service via REST to determine which decisions have been made, including the input parameters, rules that fired and resulting output parameters.

POST /decision-definition/key/dress-decision/evaluate
Request Body:
{"variables":
     "Weather" : { "value" : "Sunny", "type" : "String" }
}
Response:
[{"result":{
      "value":"T-Shirt",
      "type":"String"}
}]

Java API

Add the Decision Engine as a simple Maven dependency and use the Java API in your own application.

This will also allow you to create JUnit tests for your DMN decisions.

The Decision Engine requires less than 1MB and can run in any JVM.

Map variables = new HashMap();
variables.put("Weather", "Sunny");
DmnDecisionResult result = dmnEngine.evaluateDecisionTable("dress-decision", variables);
System.out.println (result.getSingleEntry());

Performance

We released the first version of the Camunda Decision Engine in November 2015. Since then it has been adopted by many organizations who use it in production for high volume decision procedures.

Based on their feedback and experiences we have continuously improved the Decision Engine's performance.

Blog Post: DMN Performance Improvements