Patent ID: 8429653

Claim:
A system including: at least one processor; a non-transitory computer-readable storage medium including instructions executable by the at least one processor, the instructions configured to implement, a workflow process comprising at least one synchronization point, wherein the synchronization point includes a plurality of incoming branches and a plurality of outgoing branches, and each outgoing branch is associated with a respective branch condition; a branch manager configured to cause the at least one processor to detect activation of any of the plurality of incoming branches and configured to record which incoming branches have activated as part of a current activation cycle of the synchronization point, wherein each of the plurality of incoming branches activates exactly once in an activation cycle, and the activation cycle is complete when each of the plurality of incoming branches is recorded as being activated; a flow condition evaluator configured to cause the at least one processor to determine a first synchronization condition as being fulfilled, based on the detection of a first number of the plurality of incoming branches as being activated; and a branch condition evaluator configured to cause the at least one processor to determine a first one or more of the branch conditions as being satisfied in response to the first synchronization condition being fulfilled, and to perform a first activation of the one or more of the outgoing branches associated with the first satisfied branch conditions; wherein the branch manager is further configured to detect a second number of the plurality of incoming branches as being activated after performing the first activation, wherein the flow condition evaluator is further configured to determine fulfillment of a second synchronization condition in response to the branch manager detecting the second number of the plurality of incoming branches as being activated, wherein the branch condition evaluator is further configured to determine a second one or more of the branch conditions as being satisfied in response to the second synchronization condition being fulfilled and to perform a second activation of the one or more of the outgoing branches associated with the second satisfied branch conditions, and wherein the first synchronization condition and the second synchronization condition are fulfilled within a single activation cycle.