Sarasvati - Simple, Capable and Transparent Workflow

Reference Manual

Paul Lorenz

1.0.0

2009-06-28


Table of Contents

1. What is workflow
Definitions
Why workflow?
Examples
Example 1: Order Fulfillment
Example 2: Document conversion
2. Why graph based workflow?
Graphs and Processes
Alternatives
3. Core Concepts
Introduction
Definitions
Sarasvati Graph Execution
Legend
Single Node
Two Nodes
Split and Join with Wait States
Multithreading
Split and Join without Wait States
Flow Control with Guards using Skip
Flow Control with Guards using Discard
Flow Control with Guards using Named Arcs
Flow Control from Node Completion using Named Arcs
Graph Composition and Nested Processes
Graph Composition Example One
Graph Composition Example Two
Nested Processes Example
Execution Environment
Process Attributes
Token Attributes
4. Using Sarasvati
Introduction
Sarasvati File Format
Introduction
Process Definition
Nodes
Node Arcs
Externals
External arcs
The Sarasvati Engine
Loading Process Definitions
Interfaces
Flow of Execution
Custom logic for Node Execution
Custom Attributes
Custom Loader
Environment
Execution Listeners
Backtracking
Process Definition Visualization
Process Visualization
Graph Validation

List of Figures

4.1. Linear Process Definition
4.2.
4.3. Manual Linear Backtracking
4.4. Manual Linear Backtracking: Execution
4.5.
4.6.
4.7.
4.8.
4.9.
4.10.
4.11. Manual Backtracking Split/Join
4.12.
4.13.
4.14.
4.15.
4.16.
4.17.
4.18.
4.19.
4.20.
4.21. Process Definition Visualization Screenshot
4.22. Process Visualization Screenshot

List of Tables

4.1. process-definition attributes
4.2. process-definition nested elements
4.3. node attributes
4.4. node nested elements
4.5. node join types
4.6. arc attributes
4.7. external attributes
4.8. external nested elements
4.9. arc attributes
4.10. Engine Implementations
4.11. Environment Attribute Types