Mistral is OpenStack workflow service. The main aim of the project is to provide capability to define, execute and manage tasks and workflows without writing code.
A few basic concepts that one has to understand before going through the Mistral architecture are given below:
Mistral is composed of the following major components:
The following diagram illustrates the architecture of mistral:
The API server exposes REST API to operate and monitor the workflow executions.
The Engine picks up the workflows from the workflow queue. It handles the control and dataflow of workflow executions. It also computes which tasks are ready and places them in a task queue. It passes the data from task to task, deals with condition transitions, etc.
The Task Executor executes task Actions. It picks up the tasks from the queue, run actions, and sends results back to the engine.
The scheduler stores and executes delayed calls. It is the important Mistral component since it interacts with engine and executors. It also triggers workflows on events (e.g., periodic cron event)
The persistence stores workflow definitions, current execution states, and past execution results.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.