Home > workflow

workflow

Workflow is a project mainly written in RUBY and JAVASCRIPT, based on the View license.

This is now free software! = Constellation Workflow

Constellation Workflow is a business process management engine written in Ruby using ActiveRecord for persistence.

== What is workflow?

Workflow is the management of long running processes in your application, with the word process meaning what normal people mean by it and not we programmers. Like all problems in software, this can be approached in a number of ways, including simple state machine implementations or even simpler state management approaches (think booleans). However, using an external, data-driven workflow engine separates the concerns of a changing workflow from your core application, allowing quicker time to market and greater flexibility in adapting to the changes in the real-life workflow that your application supports.

A common use case in content management systems is having different stakeholders create, copyedit, proofread, approve, and publish content, with some actions occurring in sequence and some in parallel. A common use case in e-commerce systems is processing orders: picking, packing, and shipping the items, potentially in parallel from different warehouses, and charging the customer only when the items are shipped.

Constellation Workflow draws much inspiration from the Java project jBPM (http://www.jboss.org/jbpm) and the work of The Workflow Patterns Initiative (http://workflowpatterns.com).

== Distinguishing Features

Constellation Workflow provides a significant number of workflow related features that ActiveModel::StateMachine and other implementations do not:

  • Parallel branch execution using forked processes
  • Automated process branching using decisions calculated at runtime
  • Timers for automatically moving through the process or executing actions
  • Built in support for human-completed tasks
  • Workflow process change management with migrations

If you have a very simple workflow that does not need the above features, ActiveModel::StateMachine might be a better choice.

== Development Roadmap

Constellation Workflow is under active development by Constellation Software. Version 1 will include functionality common to most simple but non-trivial workflow processes, and includes support for

  • Sequential and parallel processes
  • Timer-initiated actions
  • User tasks
  • Custom automated task nodes
  • DelayedJob-managed automated tasks
  • Amazon SNS and SQS managed automated tasks

Future iterations will include additional patterns from The Workflow Patterns Initiative (http://workflowpatterns.com) and the needs of our community.

=== Copyright

Copyright (c) 2010 Constellation Software. This is not free software. See LICENSE for details.

Previous:Tonsils