An attempt at defining or explaining terms in ruote and about workflow dashboards
(formerly engines) in general.
Before ruote 2.x, an engine was a monolithic worker + storage system. It made sense to call it an engine. With ruote 2.x, the engine became a mere “dashboard”, but the name lingers in various places.
Looking at the initialization of a dashboard clearly shows the separation:
dashboard = Ruote::Dashboard.new(Ruote::Worker.new(Ruote::HashStorage.new))
The dashboard does not necessarily contain a worker. The worker can be run independently, with the engine instantiated only for launching/querying purposes (the workflow enactment work being performed in the workers).
worker = Ruote::Worker.new(Ruote::HashStorage.new) dashboard = Ruote::Dashboard.new(Ruote::HashStorage.new)
fields, workitem fields
The workitem fields are stored in a hash (dictionary data structure). The workitem fields are sometimes referred to as the “payload” of the workitem.
A piece of a process instance.
fei, flow expression id
An identifier for a flow expression. This same identifier is used to identify workitems.
A piece of code that listens/polls on a given channel (queue, mail inbox, directory, …) for incoming workitems (or launch orders) and then pass them to ruote (by placing a msg in the storage).
A participant takes part in a process instance. Participants are registered in the engine. A participant may take part in multiple process instances and especially instances of various process definitions.
For example the participant “Al” may take part in instances of the “enter and filter new motherboards” and the “perform test batches” processes.
Depending on the context, this word can be used for process definition or for process instance.
A template for a process. Process definitions are the result of process modelling.
A process definition, turned into an instance for execution. Is uniquely identified (in a ruote system) by a wfid (workflow instance id).
Where the ruote data is persisted.
There are multiple storage implementations. See configuration for more info.
A participant that places the workitems it receives in the storage. It provides a easy inbox implementation.
TODO: code sample
variables, process variables
There are two kind of “slots” for storing user data in ruote: process variables and workitem fields.
Variables behave much like regular programming language variables, while workitem fields are tied to the workitem, the token that navigates the process tree.
Variables are mostly used for control flow inside of a process instance.
Variables are not visible to participants (they only see workitems and their fields). Of course, one can copy a variable value into a field to “show” it to a participant.
wfid, workflow instance id
Could have been renamed “process instance id”, but the “pid” abbrevation is already heavily used.
A work performer. Handles messages transiting via the storage, execute the action requested in them.
Those actions include “apply” (creating and applying a new flow expression), “reply” (replying to a [parent] flow expression), “cancel” (cancelling a flow expression, or a whole process instance), …
A token of execution in a process instance. They are usually visible when handed to participants.