Situation: Fork with two legs, each having a tasknode with a task, each with its own swimlane (so two different users could get a task in their worklist). What happens if two users end their task simultaneously? Will the join execute properly? After all, they fetch the current situation, do a transition to the join, which inspects if all tokens are arrived, and continue if needed. Will one of them get an optimistic locking exception? In that case, can the business logic retry the end()? What will be the behaviour? (I hope not: "an inconsistent state", an optimistic locking is better).