Here the code for "I tried the following:" from above: <code> <receiveTask id="persist" name="persist"/> <boundaryEvent id="persistTimer" cancelActivity="true" attachedToRef="persist"> <timerEventDefinition> <timeDuration>PT1S</timeDuration> </timerEventDefinition> </boundaryEvent> <sequenceFlow id="persistTimerToCommit" sourceRef="persistTimer" targetRef="commit"/> </code>
Activiti works in one database transaction when executing synchronously. So to force Activiti to persist the process state you would need to introduce an asynchronous element to it. So no workaround for this as this is one of the architectural foundations of the engine.