Workflow Patterns in Workflow Nets


First task $a$, then task $b$

  • petri-net-sequence.png

Parallel Split

Tasks $b$ and $c$ are processed in parallel

  • this construction is also called "AND-split"
  • petri-net-par-split.png


Do $d$ only after both $b$ and $c$ are completed

  • this is a synchronization between two parallel processes
  • this construction is also called "AND-join"
  • petri-net-synch.png

Parallel Routing

A combination of Parallel Split and Synchronization

  • petri-net-parallel-ex.png

Exclusive Choice

after $a$, do $b$ or $c$

  • petri-net-xor.png
  • choice in this case depends on the results of the activity $a$
  • here both doA and doB will be active, but we want to fire only one of them, based on the activity $a$

Simple Merge

perform $d$ after $b$ or $c$ finishes

  • petri-net-xor-merge.png

Alternative Routing

a combination of Exclusive Choice and Simple Merge

  • petri-net-alt-routing.png

Deferred Choice

When the choice is deferred to the point when we execute something

  • for Petri Nets, visually looks identical to Exclusive Choice
  • petri-net-deferred-choice.png

Deferred Choice vs Exclusive Choice

  • in Exclusive Choice after execution of $a$ you already know what activity to run
  • but for the deferred choice there's a race condition between the activities