I Use This!
Activity Not Available
Analyzed about 2 years ago. based on code collected about 2 years 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...

GNU Library or "Lesser" GPL (LGPL)

Place Warranty

Use Patent Claims

Commercial Use





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.

All Licenses

This Project has No vulnerabilities Reported Against it

Did You Know...

  • ...
    Black Duck offers a free trial so you can discover if there are open source vulnerabilities in your code
  • ...
    learn about Open Hub updates and features on the Open Hub blog
  • ...
    in 2016, 47% of companies did not have formal process in place to track OS code
  • ...
    compare projects before you chose one to use


11 Other

30 Day Summary

Mar 17 2016 — Apr 16 2016

12 Month Summary

Apr 16 2015 — Apr 16 2016
  • 0 Commits
    Down -1 (100%) from previous 12 months
  • 0 Contributors
    Down -1 (100%) from previous 12 months


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