Ruote is a workflow engine written in Ruby. It’s a runtime for long running [business] processes.
Ruote is available under the MIT open source license.
There is a small quickstart available, it focuses on the ruote ‘gem’. For an example integration in Rails there is an online demo (though it’s still running an old version)
Processes are explicitely defined and may be explicitely handled (start, pause, cancel, update).
A process is started by handing a [business] process definition to the engine. A process definition is expressed in ruote’s own process definition language, which comes in two flavours : XML and a Ruby DSL.
A process definition will describe the flow of work among participants.
A ruote engine can handle simultaneously multiple process instances, created from one or more different process definitions. A process instance can be modified on the fly.