Stack
The stack component allows to do depth-first traversing (longest branches before the shortest branch of a tree), but it also facilities processing data in a certain order.
Example
In this example, we would like to output to the document-store, in the order shown below. The objects have a parent-child relationship. The execution flow will look as follows:
Folder structure diagram
       A
      / \
    B    C
  /  \
D     E
- Retrieve A from the content-store 
(stack: [ ]) - Send A to document-store 
(stack: [ ]) - Get children of A in reversed order and add to stack using Children input 
(stack: [C, B]) - Send a message to Finished Parent input of stack, pops B 
(stack: [C]) - Send B to document-store 
(stack: [C]) - Get children of B in reversed order and add to stack using Children input 
(stack: [C, E, D]) - Send a message to Finished Parent input of stack, pops D 
(stack: [C, E]) - Send D to document-store 
(stack: [C, E]) - Get children of D in reversed order and add to stack using Children input 
(stack: [C, E]) - Send a message to Finished Parent input of stack, pops E 
(stack: [C]) - Send E to document-store 
(stack: [C]) - Get children of E in reversed order and add to stack using Children input 
(stack: [C]) - Send a message to Finished Parent input of stack, pops C 
(stack: [ ]) - Send C to document-store 
(stack: [ ]) 
Inputs | Outputs
Any value which should be pushed to the end of the stack
A