<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</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><span style="font-family: Calibri; font-size: 11pt; font-weight: bold;">From:
</span><span style="font-family: Calibri; font-size: 11pt;">Renat Akhmerov <</span><a href="mailto:rakhmerov@mirantis.com" style="font-family: Calibri; font-size: 11pt;">rakhmerov@mirantis.com</a><span style="font-family: Calibri; font-size: 11pt;">></span></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">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>Monday, March 17, 2014 at 10:51 PM<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>Re: [openstack-dev] [Mistral] Actions design BP<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>On 18 Mar 2014, at 01:32, Joshua Harlow <<a href="mailto:harlowja@yahoo-inc.com">harlowja@yahoo-inc.com</a>> wrote:</div>
<div>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;">
<div>To further this lets continue working on <a href="https://etherpad.openstack.org/p/taskflow-mistral">https://etherpad.openstack.org/p/taskflow-mistral</a> and see if we can align somehow</div>
</div>
</blockquote>
<div><br>
</div>
Sure.</div>
<div><br>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;">
<div>(I hope it's not to late to do this,</div>
</div>
</blockquote>
<div><br>
</div>
<div>Never late IMO.</div>
<br>
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;">
<div>seeing that there appears to be a lot of resistance from the mistral community to change.</div>
</div>
</blockquote>
<div><br>
</div>
<div>Could you please let us know how you made this conclusion? Im frankly surprised.. Its not just my curiosity or something, I want to keep improving in what Im doing.</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>So maybe its just my misinterpretation or miscommunication, but certain discussions like @ <a href="http://lists.openstack.org/pipermail/openstack-dev/2014-March/029983.html">http://tinyurl.com/m395o2r</a> (mention of 'inalienable parts of Mistral', 'Joshua
 propose detailed Mistral design based on TaskFlow') seem to be what causes me to think that what mistral has been making is more of a POC and is actually an implementation. To me that means the mistral project is already way past the POC mode (imho POC's are
 meant to explore concepts, then be thrown away and reimplemented as a real project, is mistral planning doing this, throwing way the POC and rewriting it as a non-POC using the ideas learned from the POC?)[<a href="http://tinyurl.com/lbz293s">http://tinyurl.com/lbz293s</a>]. </div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div><br>
</div>
<div><br>
</div>
<div>Generally, just to clarify the situation let me provide our vision of what were doing at the very high level.</div>
<div><br>
</div>
<div>As mentioned many times, were still building a PoC. Yes, it turned out to take longer which is totally fine since weve done a lot of research, lots of coding exercises, talks, discussions with our customers. Weve involved several new contributors from
 two different companies, they have their requirements and use cases too. Weve gathered a lot of specific requirements to what should be a workflow engine. This all was the exact intention of that phase of the project: understand better what we should build.
 If you look at Mistral list of blueprints youll see around 40 of them where 80-90% of them come from real needs of real projects. And not everything is still captured in BPs because something is still not shaped well enough in our minds.</div>
<div><br>
</div>
<div>Thought #1:<span class="Apple-converted-space"> </span><b>In POC weve been concentrating on use cases and requirements. Implementation has been secondary</b>.</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>Sure thats fine thats what a POC is for. See above.</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div><br>
</div>
<div>TaskFlow or anything else just hasnt mattered a lot so far. But, at the same time, I want to remind that in December we tried to use TaskFlow to implement the very basic functionality in Mistral (only dependency based model). Honestly, we failed to produce
 a result that we would be satisfied with since TaskFlow lacked, for example, the ability to run tasks in an asynchronous manner. This was not a problem at all, this is the real world. So I created a BP to address that problem in TaskFlow ([0]). So we decided
 to proceed with it with an intent to rejoin later.</div>
<div>And may be even the most important reason not to use TaskFlow was that we did want to have a clear research. We found that less productive to try to build a project around an existing library than concentrating on use cases and high-level requirements.
 From my experience, it never works well since in your thinking you always stick to limitations of that lib and assumptions made in it.</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>For the 'asynchronous manner' discussion see <a href="http://tinyurl.com/n3v9lt8">http://tinyurl.com/n3v9lt8</a>; I'm still not sure why u would want to make is_sync/is_async a primitive concept in a workflow system, shouldn't this be only up to the entity
 running the workflow to decide? Why is a task allowed to be sync/async, that has major side-effects for state-persistence, resumption (and to me is a incorrect abstraction to provide) and general workflow execution control, I'd be very careful with this (which
 is why I am hesitant to add it without much much more discussion).</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div><br>
</div>
<div>So we actually talked to people a lot (including Josh) and provided this reasoning when this question raised again. Reaction was nearly always positive and made a lot of sense to customers and developers.</div>
<div><br>
</div>
<div>Thought #2:<span class="Apple-converted-space"> </span><b>A library shouldn't drive a project where its used.</b></div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>To me this assumes said library is fixed in stone, can't be changed, and can't be evolved. If a library is 'dead/vaporware' then sure, I would 100% agree with this, but all libraries in openstack do not fit into the later category; and those libraries
 can be evolved/developed/improved. As a community I think it is our goal to grow the libraries in the community (not reduce them or avoid them, as this is not benefical for the community). I think doug put this very well his essay @
<a href="http://tinyurl.com/lr9wvfl">http://tinyurl.com/lr9wvfl</a> and imho we need to embrace evolving libraries in all projects, not avoiding them due to thoughts like this. </div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div><br>
</div>
<div>Project needs should define the requirements to a library. Even being adopted in lots of places (this is apparently not true for TaskFlow right now which is fully understandable, a pretty young project as well) a library is just one of many tools used
 within a project. But not vice versa.</div>
<div><br>
</div>
<div>Thought #3.<span class="Apple-converted-space"> </span><b>We 100% admit were not ready for incubation right now</b>.</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>This to me goes back to the POC question. I'm a pretty big believer that POC should be redone with the lessons learnt (and then whatever this is should be proposed for incubation when the team responsible for it believes it is ready for incubation).</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div><br>
</div>
<div>We prepared an incubation request already with most of the formal requirements met by the project. And even thought the interest to Mistral is serious (at least 5-6 projects intent to use it, one already started playing and prototyping with Mistral) we
 want to be honest with the community in that were not really ready for incubation since even our own solid understanding of core requirements and API/DSL is only on its way. This is just one more argument that spending significant time on thinking how to
 fit TaskFlow into our unstable Mistral vision is not affordable for us at the moment. Despite of that, last week we started spending that time after Josh started bombing us with his concerns :).</div>
</div>
</blockquote>
</span>
<div><br>
</div>
<div>Sorry didn't mean to bomb more than usual ;)</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div><br>
</div>
<div><br>
</div>
<div>If thats all harsh, sorry. Were interested in keeping in touch with Josh and others.</div>
<div><br>
</div>
<div>[0] <a href="https://blueprints.launchpad.net/taskflow/+spec/async-tasks">https://blueprints.launchpad.net/taskflow/+spec/async-tasks</a></div>
<div><br>
</div>
<div>
<div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); font-family: Calibri; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
Renat Akhmerov</div>
<div style="color: rgb(0, 0, 0); font-family: Calibri; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">
@ Mirantis Inc.</div>
<br class="Apple-interchange-newline">
</div>
</div>
</div>
</blockquote>
</span>
</body>
</html>