sequence

The plain ‘sequence’ expression.

              sequence do
                participant 'alpha'
                participant 'bravo'
                participant 'charly'
              end
            
            

using ‘let’

‘let’ behaves like a sequence, but the children have their own variable
scope.

              pdef = Ruote.process_definition do
                set 'v:var' => 'val'
                echo "out:${v:var}"
                let do
                  set 'v:var' => 'val1'
                  echo "in:${v:var}"
                end
                echo "out:${v:var}"
              end
            
  1. => out:val, in:val1, out:val

as a ‘case’ statement

              let do
                define 'published' do
                  do_this
                end
                define 'reviewed' do
                  do_that
                end
                subprocess '${case}'
              end
            

Subprocesses ‘published’ and ‘reviewed’ are bound in a local scope,
that gets discarded when the let exits.