Camunda 7.15 - Decision Service - DMN Caching


We are running embedded Process Engine in our spring boot application by using provided Spring Boot starters. Spring boot application is running on multiple containers in clusters and Camunda process engine has shared SQL Server database.

Process engine is configured using Processes.xml file with below configuration:

<process-application         xmlns=""         xmlns:xsi="">     
<process-archive name="archiveName">         
<property name="isDeleteUponUndeploy">false</property> 
<property name="isScanForProcessDefinitions">true</property>         

History logging is disabled.
We are using only decisionService (decision evaluation) and repositoryService (DMN deployment) java api. Decision is evaluated using decisionService method evaluatDecisionTableByKey:

var result = decisionService.evaluateDecisionTableByKey("DMNKey", VariablesMap);

Issue: When our application is running in EUS region and SQL Server is also in EUS region, rule evaluation takes around 70ms.
But when application is running in SCUS and SQL Server is in EUS, rule evaluation time jumps to 600ms.


  • Does each rule evaluation call using decisionService.evaluateDecisionTableByKey hit database to get DMNinstance for evaluation or DMNinstance is cached?
  • If we deploy new version of DMN, process engine gets latest DMN from database for evaluation. It means process engine polls database for changes. What is polling duration and is there a way to configure it?
  • What other database operations happen for process engine.