Jump to: navigation, search

Mistral/Blueprints/PoC

< Mistral‎ | Blueprints
Revision as of 05:55, 28 November 2013 by Rakhmerov (talk | contribs) (Design)

Mistral Proof of Concept

We need to create a small PoC project illustrating main Mistral ideas.

Etherpads

Requirements

Capabilities implemented in the scope of PoC should include:

  • Basic Workflow Engine capable of analyzing task graphs, resolving dependencies between tasks and processing them in the right order
  • Simple storage (RDBMS for now) access layer to it for storing task graphs and workflow execution states
  • Basic DSL for defining tasks, task dependencies, actions and action transports (currently HTTP and AMQP)
  • REST API for uploading task graphs and executing workflows
  • Necessary test suite to validate the above functionality

Design

Picture 1. Mistral PoC Architecture

The suggested design consists of the components described below. For PoC we suggest running all the components within the same process but design them so that we can easily split them moving forward (arrows on the picture will become network interactions).

Mistral REST API

Mistral API server built with Pecan/WSME. Here's the etherpad that describes the suggested API: https://etherpad.openstack.org/p/MistralAPISpecification

The main capability of the API server is to provide actions for uploading workbooks (description of tasks, actions etc. written in Mistral DSL) and running workflows.

Mistral Python Client

Demo App

Event Scheduler

DSL Parser

Workflow Execution