I Use This!
Activity Not Available
Analyzed 7 months ago. based on code collected 12 months ago.

Project Summary

SarasvatiOverviewSarasvati is a workflow/bpm engine based on graph execution. It has a simple core which allows for different implementations. For example one may change the persistence mechanism (or avoid it altogether), change token representation or build additional functionality on top.

It currently has implementations in Haskell and Java. These are being fleshed out and will hopefully be porting it to C# and a dynamic language such as ruby, python or javascript.

FeaturesSimple graph execution based core Process level attributes Token attributes Efficient copy-on-write database storage of token attributes Execution history available through 'immutable' tokens Node guards allow bypassing nodes or discarding tokens for flow control Domain specific language (GuardLang) for user understandable guards XML file format for process definitions Java implementation Hibernate backed engine for DB persistence Memory backed engine for cases where persistence is not required. Haskell implementation HDBC backed engine Memory backed engine Introduction to workflowWhat is workflow? Why graph based workflow? Getting started with Sarasvati Getting the source code Sarasvati core concepts Why is the project named Sarasvati?

NewsSeptember 6, 2008 - V1.0.0-beta1 of Sarasvati release for Java. Cleaned up process definition file format somewhat, including fixing validation Added support for embedding script (such as javascript) in process definition files, to be executed when the node is executed Bug fixes September 4, 2008 - v1.0.0-alpha2 of Sarasvati released for Java. Added Adaptable interface for Nodes Removed visual components into separate project Fixed several bugs August 22, 2008 - v1.0.0-alpha1 of Sarasvati released for Java. Support for event listeners (global and per-process) Support for nested processes Standardized GraphFactory and GraphRepository Allow direct bean style setting of node attributes from XML Updated model to allow better recovery from failed node execution. Paves way for transaction boundaries. August 10, 2008 - v0.3 of Sarasvati released for Haskell. Updates support for process states Changes library name from Sarasvati to sarasvati-haskell, for consistency. July 29, 2008 - v0.3 of Sarasvati released for Java Introduces explicit process states allowing for asynchronous process completions. Bug fixes July 24, 2008 - v0.2 of Sarasvati released for Java and Haskell This introduces process level variables. Previously variables were only allowed on tokens. There are also some minor fixes. June 29, 2008 - v0.1 of Sarasvati released for Java. June 23, 2008 - Examples for Sarasvati Haskell released. I refreshed the v0.1.0 release with some updates to the build, including a dependency on Cabal 1.4. June 22, 2008 - v0.1 of Sarasvati released for Haskell. This is an alpha release. Documentation is incomplete. This will be the focus of release v0.2. Some Haskell example code as well the Java version should be released in the next week or so. June 12, 2008 - Java loader complete. Work on memory backed engine is also complete. June 12, 2008 - XML Process definition file format reworked. Now has XML Schema Definition rather than DTD. This is allows embedding of elements defined in other schemas. June 2, 2008 - More documentation and packaging work on Haskell version. Once XML -> Memory and XML -> DB loaders are documented and packaged, should be ready for an alpha release. May 26, 2008 - Start memory backed engine for java version. Basic engine is implemented. However,will need memory backed graph loader before this is useful or testable. May 26, 2008 - Implemented GuardLang for java version May 21, 2008 - Documenting and building out wiki pages. May 20, 2008 - Source code imported. I used svn2svn to extract two projects out of the many in my home repository. May 18, 2008 - Project created on Google Code. Thank you to Stefan Webb, for allowing me to use the name.


bpm finitestatemachine graph haskell java workflow

In a Nutshell, sarasvati...

 No recognizable code

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has code locations but that location contains no recognizable source code for Open Hub to analyze.


Commercial Use



Place Warranty

Use Patent Claims



Hold Liable


Distribute Original

Disclose Source

Include Copyright

State Changes

Include License

Include Install Instructions

These details are provided for information only. No information here is legal advice and should not be used as such.

Project Security

Vulnerabilities per Version ( last 10 releases )

There are no reported vulnerabilities

Project Vulnerability Report

Security Confidence Index

Poor security track-record
Favorable security track-record

Vulnerability Exposure Index

Many reported vulnerabilities
Few reported vulnerabilities

Did You Know...

  • ...
    in 2016, 47% of companies did not have formal process in place to track OS code
  • ...
    check out hot projects on the Open Hub
  • ...
    55% of companies leverage OSS for production infrastructure
  • ...
    learn about Open Hub updates and features on the Open Hub blog
About Project Security

 No recognizable code

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has code locations but that location contains no recognizable source code for Open Hub to analyze.

Community Rating

Be the first to rate this project
Click to add your rating
Review this Project!