Sarasvati Workflow 1.0.0-rc1 With Support for Backtracking and Visualizations
Join the DZone community and get the full member experience.Join For Free
Sarasvati 1.0.0-rc1 has been released.
In addition to bug fixes it includes the following major changes:
- Support for backtracking.
- Backtracking allows reversing the flow execution, back to any point in the execution history.
- Nodes may control whether they can be backtracked over.
- Nodes may execute custom logic when being backtracked.
- For a more in-depth overview see: http://code.google.com/p/sarasvati/wiki/Backtracking
- First release of Sarasvati Visualizations.
- Supports generating HTML image maps of Sarasvati process definitions and executions. Supports customizing hovers and click actions on displayed nodes.
- Supports (with some developer work) standalone applications to visualize process definitions and executions.
- As a first release, the visualization code hasn't been widely tested and may contain bugs. The API is also not guaranteed to be stable.
- TODO: Does not yet support display of self-arcs on nodes. Does not yet suport display of arc names.
Here is a visualization of an example process definition:
Here is a visualization of that same process definition while it is being executed.
- Enhancements to Rubric
- Add business days modifier
- Allow underscores in ids
- Bug fixes
The full changelog can be found at http://code.google.com/p/sarasvati/issues/list?can=1&q=label%3AMilestone-1.0.0-rc1
For those unfamiliar with Sarasvati, these are some of the features:
* Simple, well documented, graph execution based core
* Process modularity via load time or run time process composition
* Process and token level attributes
* Actions can be implemented in scripting languages.
* Execution history available through tree structure of immutable tokens
* Node guards which allow bypassing nodes or discarding tokens for flow control
* Domain specific language (Rubric) for user understandable guards
* Java implementation with Hibernate and memory backed engines
* LGPL license
Why might you want to use Sarasvati?
* Load time process composition gives you tremendous flexibility in modularizing your process definitions
* You want to provide transparency to your users
* Extensible and customizable
* You don't want the workflow engine to dictate how users, groups and tasks should be modeled.
Why might Sarasvati not yet be useful to you?
* It currently has no graphical editor (planned for a future version).
* It only runs on Java 1.5 or newer
* It does not yet have a turn key solution for users/groups/tasks.
What is workflow? http://code.google.com/p/sarasvati/wiki/Workflow
Core Concepts Documentation: http://code.google.com/p/sarasvati/wiki/EngineConcepts
User's Guide: http://code.google.com/p/sarasvati/wiki/UsingSarasvati
jBPM comparison (corrections welcome): http://code.google.com/p/sarasvati/wiki/SarasvatiVsJBPM
Sarasvati welcomes users and contributors.
Please send comments, questions, etc to the user forum at:
Opinions expressed by DZone contributors are their own.