I am using jbpm and drools at Intalio and recently we were looking into performance, and found an issue that in persistence the following class

has method execute() which is synchronized and is entry point to all jbpm functionality

We were trying to update many process instances at same time and seems because of above they are updated one after another and not in parallel

I wanted to understand the reason for this method being synchronized and what would be required to make it non-synchronized

I would be thankful for any advice/help