[openstack-dev] [Mistral][TaskFlow] Mistral-TaskFlow Summary

Joshua Harlow harlowja at YAHOO-INC.COM
Tue Apr 15 17:18:14 UTC 2014


I think we agree on the lazy execution model. At least at a high-level, I'd rather not agree on the API's that are exactly exposed until there is an implementation since I've found that agreeing to any type of API's before there is the needed groundwork to make it happen is pretty useless and a waste of energy on everyones part.

Decider sounds like it could work also as a name, although it seems from dataflow like work its called a switch or gate, either or I guess.

As far as the micro-language:

So there are typically 2 types of DSL's that occur, internal and external.

An internal DSL is like http://martinfowler.com/bliki/InternalDslStyle.html, taskflow is already a micro-DSL internal to python (mistral is an external DSL[1]). To me there is a drawback of becoming to much of a DSL (internal or external) in that it requires a lot of new learning (imho internal DSLs are easier to pick-up since they take advantage of the surrounding languages capabilities, in this case python). So that’s what I just want to keep in our minds that we need to make it simple *enough*, or we will die a nasty death of complexity :-P

[1] http://martinfowler.com/bliki/DomainSpecificLanguage.html

From: Renat Akhmerov <rakhmerov at mirantis.com<mailto:rakhmerov at mirantis.com>>
Reply-To: "OpenStack Development Mailing List (not for usage questions)" <openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>>
Date: Tuesday, April 15, 2014 at 12:19 AM
To: "OpenStack Development Mailing List (not for usage questions)" <openstack-dev at lists.openstack.org<mailto:openstack-dev at lists.openstack.org>>
Subject: Re: [openstack-dev] [Mistral][TaskFlow] Mistral-TaskFlow Summary

Some notes:

  *   Even though we use YAQL now our design is flexible enough to plug other ELs in.
  *   If it tells you something in Amazon SWF a component that makes a decision about a further route is called Decider.
  *   This discussion about conditionals is surely important but it doesn’t matter too much if we don’t agree on that lazy execution model.

Of course I'm trying to make the above not be its own micro-language as much as possible (a switch object starts to act like one, sadly).

Why do you think it’s going to be a micro-language?

[1] http://www.cs.cmu.edu/~aldrich/papers/onward2009-concurrency.pdf
[2] http://www.cs.ucf.edu/~dcm/Teaching/COT4810-Spring2011/Literature/DataFlowProgrammingLanguages.pdf

Cool, thanks!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140415/59428afa/attachment.html>


More information about the OpenStack-dev mailing list