Instead of implementing this complicated approach for jbpm session management. Can't you just use single StatefulKnowledgeSession across the cluster and replicate it's JVM state by using distributed cache such as infinispan. Only reason you can't use single session across nodes is that it's state gets out of sync, but infinispan can take care of that. I know StatefulKnowledgeSession is not serializable, but I think in infinispan you can plugin a class that can handle marshalling of jbpm session