Mistral/terminology and model

Workflow
Describes a graph of all possible tasks, valid transitions between them, actions associated with the tasks.

Mistral DSL
DSL stands for Domain Specific Language.

Mistral DSL is a simple workflow definition language based on YAML format:

Mistral DSL specification

Workflow Execution
A particular execution. That is, for the given task graph and chosen task the service should perform all required actions (subtasks) in order to complete this task. All transitions must be compliant to allowed configured transitions in the task graph.

A workflow execution can be in a number of predefined states reflecting its current status:
 * RUNNING - workflow is currently being executed.
 * PAUSED - workflow is paused.
 * SUCCESS - workflow has finished successfully.
 * ERROR - workflow has finished with an error.

Task
Defines a workflow execution step. It has a state and result.

Task state
A task can be in a number of predefined states reflecting its current status:
 * IDLE - task dependencies are not satisfied.
 * RUNNING - task is currently being executed.
 * SUCCESS - task has finished successfully.
 * ERROR - task has finished with an error. All the actual task states belonging to current execution are persisted in DB.

Action
A particular instruction associated with a task that needs to be performed once the task runs. It can be a anything like running a shell script, HTTP request, AMQP message or any signal sent to any system external to Mistral. Actions can be synchronous or asynchronous. In case of asynchronous action Mistral will send a signal and will be waiting for a corresponding action result to be delivered back to Mistral.