Jump to: navigation, search

Difference between revisions of "Mistral/terminology and model"

(Workbook)
Line 9: Line 9:
 
[[Mistral/DSL|Mistral DSL specification]]
 
[[Mistral/DSL|Mistral DSL specification]]
  
=== Flow ===
 
Route in a task graph that reflects one possible set of actions performed in a linear fashion. At the same time, the service logically can run individual flows independently thereby leaving freedom for various optimization on an implementation level such as using multiple parallel processes.
 
 
=== Workflow Execution ===
 
=== 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 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 ===
 
=== Task ===
Defines a flow execution step. Each task is defined with its dependant tasks which the flow execution can jump from in order to reach that task.
+
Defines a workflow execution step. It has a state and result.
=== Action ===
+
 
A particular instruction associated with a task that needs to be performed once the task dependencies are satisfied. I can be a HTTP request, AMQP message or any other signal sent to any system external to Mistral (including a client application itself). 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.
+
==== Task state ====
=== Task state ===
 
 
A task can be in a number of predefined states reflecting its current status:
 
A task can be in a number of predefined states reflecting its current status:
 
:* IDLE - task dependencies are not satisfied.
 
:* IDLE - task dependencies are not satisfied.
Line 23: Line 27:
 
:* SUCCESS - task has finished successfully.
 
:* 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.
 
:* ERROR - task has finished with an error. All the actual task states belonging to current execution are persisted in DB.
=== Event ===
+
 
There are several types of conditions which cause a new workflow execution to be created when it is met. The actual condition may occur many times and each time (with some limitations specified in the condition itself) a new execution will be created.
+
=== 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.

Revision as of 11:33, 16 April 2015

Workbook

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.