<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; "><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></body></html>