func1(){
d1=DmnEngineConfiguration.createDefaultDmnEngineConfiguration().buildEngine();
return d1.evaluateDecisionTable(decision, variables);}
CompletableFuture.supplyAsync(() → var1.equalsIgnoreCase(“true”) ? func1() : func2(), executorService ); futures.add(future);
For Parallel evaluation using dmn engines, can we achieve it using the above lines where we instantiate a new dmn engine, everytime we evaluate a decision. Is there any documentation for this?. Or is there any other approach for achieving paralell processing?
@Sanju_Srinivasan, In Camunda (especially Camunda 8), you cannot directly configure multiple DMN engines in the way you might configure multiple instances of a microservice. However, you can scale DMN decision evaluation in parallel by applying one or more of the following approaches.
Camunda 8 uses Zeebe and separates DMN evaluation into job workers, often invoked from BPMN processes. To scale DMN evaluations in parallel:
- Use BPMN with Parallel Multi-Instance Call Activities or Service Tasks
- Scale Your Workers Horizontally
- Split DMN Logic Across Separate BPMN Flows
If you have several independent DMN tables, you can trigger their evaluation in different BPMN process instances in parallel.