<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Can we describe exactly what references, direct transition, expression evaluation are doing in #2.</div>
<div><br>
</div>
<div>Expression evaluation especially seems to be an odd one, what's wrong with pythons expression evaluation? I can't quite see why that would/should exist in taskflow.</div>
<div><br>
</div>
<div>I can see it being implemented in mistral, where mistral converts whatever DSL it wants into taskflow primitives and then taskflow runs the code; this decoupling ensures that taskflow does not force a DSL on people that want to use taskflow as a python
 library (this kind of restriction imho isn't acceptable for a library to do,  and limits taskflows own usage and integration).</div>
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Josh</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Dmitri Zimine <<a href="mailto:dz@stackstorm.com">dz@stackstorm.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Friday, April 11, 2014 at 9:55 AM<br>
<span style="font-weight:bold">To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>[openstack-dev] [Mistral][TaskFlow] Mistral-TaskFlow Summary<br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">We prototyped Mistral / TaskFlow integration and have a follow-up discussions. </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><br>
</div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b>SUMMARY: </b>Mistral (Workflow Service) can embed TaskFlow as a workflow library, with some required modifications to function
 resliently as a service, and for smooth integration. However, the TaskFlow flow controls are insufficient for Mistral use cases. </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px;">Details discussed on other thirds. </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">The prototype scope - [</span></font><a href="https://etherpad.openstack.org/p/mistral-taskflow-prototype">0</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">];
 code and discussion - [</span></font><a href="https://github.com/enykeev/mistral/pull/1">1</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">] and techical highlights - [</span></font><a href="http://lists.openstack.org/pipermail/openstack-dev/2014-April/032461.html">2</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">].</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b>DETAILS: </b></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b><br>
</b></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b>1) Embedding TaskFlow inside Mistral:</b></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Required: make the engine "lazy" [</span></font><a href="http://lists.openstack.org/pipermail/openstack-dev/2014-March/031134.html">3</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">],
 [</span></font><a href="http://paste.openstack.org/show/75389/">4</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">].</span></font><span style="line-height: 16px; font-family: Arial, sans-serif;">This is required to support long-running delegates
 and not loose tasks when engine manager process restarts.</span></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><span style="line-height: 16px; font-family: Arial, sans-serif;"><br>
</span></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Persistence: need clarity how to replace or mix-in TaskFlow persistence with Mistral persistence. <i>Renat is taking a look.</i></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><i><br>
</i></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Declaring Flows in YAML DSL: done for simplest flow. Need to prototype for data flow. Rich flow controls are missing in TaskFlow
 for a representative prototype.</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* ActionRunners vs Taskflow Workers - not prototyped. Not a risk: both Mistral and TaskFlow implementations work. But we shall
 resolve the overlap. </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Ignored for now - unlikely any risks: Keystone integration, Mistral event scheduler, Mistral declarative services and action
 definition.</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b>2) TaskFlow library features</b></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Must: flow control - conditional transitions, references, expression evaluation, to express real-life workflows [</span></font><a href="https://github.com/dzimine/mistral-workflows/tree/add-usecases">5</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">].
 The required flow control primitives are 1) repeater 2) flow in flow 3) direct transition 4) conditional transition 5) multiple data. TaskFlow has 1) and 2), need to add 3/4/5. </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Other details and smaller requests are in the discussion </span></font><font face="Arial,sans-serif"><span style="line-height: 16px; ">[</span></font><a href="https://github.com/enykeev/mistral/pull/1">1</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">]</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b>3) Next Steps proposed:</b></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Mistal team: summarize the requirements discussed and agreed on </span></font><font face="Arial,sans-serif"><span style="line-height: 16px; ">[</span></font><a href="http://lists.openstack.org/pipermail/openstack-dev/2014-April/032461.html">2</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">]</span></font><font face="Arial,sans-serif"><span style="line-height: 16px; "> and </span></font><font face="Arial,sans-serif"><span style="line-height: 16px; ">[</span></font><a href="http://lists.openstack.org/pipermail/openstack-dev/2014-March/031134.html">3</a><font face="Arial,sans-serif"><span style="line-height: 16px; ">]</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Mistral team: code sample (tests?) on how Mistral would like to consume TaskFlow lazy engine </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Taskflow team: Provide a design for alternative TaskExecutor approach (prototypes, boxes, arrows, crayons :)) </span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Decide on lazy engine</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">* Move the discussion on other elements on integration.</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><br>
</span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; "><b>References:</b></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">[0] The scope of the prototype: <a href="https://etherpad.openstack.org/p/mistral-taskflow-prototype">https://etherpad.openstack.org/p/mistral-taskflow-prototype</a></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">[1] Prototype code and discussion <a href="https://github.com/enykeev/mistral/pull/1">https://github.com/enykeev/mistral/pull/1</a></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">[2] Techical summary <a href="http://lists.openstack.org/pipermail/openstack-dev/2014-April/032461.html">http://lists.openstack.org/pipermail/openstack-dev/2014-April/032461.html</a></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">[3] Email discussion on TaskFlow lazy eninge <a href="http://lists.openstack.org/pipermail/openstack-dev/2014-March/031134.html">http://lists.openstack.org/pipermail/openstack-dev/2014-March/031134.html</a></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">[4] IRC discussion Mistral/Taskflow <a href="http://paste.openstack.org/show/75389/">http://paste.openstack.org/show/75389/</a></span></font></div>
<div id="magicdomid2" class="" style="margin: 0px; padding: 0px; "><font face="Arial,sans-serif"><span style="line-height: 16px; ">[5] Use cases <a href="https://github.com/dzimine/mistral-workflows/tree/add-usecases">https://github.com/dzimine/mistral-workflows/tree/add-usecases</a></span></font></div>
</div>
</div>
</blockquote>
</span>
</body>
</html>