Jump to: navigation, search

Difference between revisions of "Mistral/terminology and model"

(Created page with "=== Workbook === Describes a graph of all possible tasks, valid transitions between them, actions associated with the tasks and events that set rules certain workflows should...")
 
(Target task)
Line 15: Line 15:
 
=== 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 flow execution step. Each task is defined with its dependant tasks which the flow execution can jump from in order to reach that task.
=== Target task ===
 
The task that a client needs to execute at some point in time. Any task can be chosen as target task in the task graph definition. Once this task has been processed with success the workflow execution is considered finished.
 
 
=== Action ===
 
=== 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.
 
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.

Revision as of 04:39, 5 May 2014

Workbook

Describes a graph of all possible tasks, valid transitions between them, actions associated with the tasks and events that set rules certain workflows should be run (on cron pattern, ceilometer alarms etc.)

Mistral DSL

DSL stands for Domain Specific Language.

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

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

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.

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.

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

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.

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.