jBPM is based on Graph Oriented Programming (GOP). Basically, GOP specifies a simple state machine that can handle concurrent paths of execution. But in the execution algorithm specified in GOP, all state transitions are done in a single operation in the thread of the client. By default, this performing state transitions in the thread of the client is a good approach cause it fits naturally with server side transactions. The process execution moves from one wait state to another wait state in one transaction.
In some situations, a developer might want to fine-tune the transaction
demarcation in the process definition. In jPDL, it is possible to specify that the process
execution should continue asynchronously with the attribute async="true"
.
async="true"
can be specified on all node types and all action types.