Really great news, indeed. I don‘t want to crush the party, but doesn‘t this have to go through the proper IP clearance [1] ? On the on hand OpenWhisk still is incubating but on the other hand this seems to be a substantial piece of code not part of the initial onboarding.
@Mentors, please advise. Thanks Felix [1] https://incubator.apache.org/guides/ip_clearance.html Von meinem iPad gesendet Am 29.09.2018 um 03:09 schrieb rex f <aug2...@gmail.com<mailto:aug2...@gmail.com>>: Thank you Oliver and team at IBM research. This looks fun to play with. - rex fatahi, phd On Fri, Sep 28, 2018 at 4:57 PM Olivier Tardieu <tard...@us.ibm.com<mailto:tard...@us.ibm.com>> wrote: Here is some context about composer. Composer is a Javascript library to make it easy to author conductor actions and build serverless micro services by composing OpenWhisk actions. For now Composer is available at https://github.com/ibm-functions/composer. There you will find not only the code and documentation for Composer but also tutorials, videos, blog posts, etc. Composer is also distributed as an npm package: https://www.npmjs.com/package/@ibm-functions/composer/. Conductor actions have been part of OpenWhisk since February 2018 ( https://github.com/apache/incubator-openwhisk/pull/3202). Like sequences, conductor actions make it possible to chain the invocation of multiple actions, but unlike sequences the length and components of the chain may be decided at run time. In particular, conductor actions may implement conditional, loops, and handle errors (whereas sequences abort on errors). Conductor actions are documented in https://github.com/apache/incubator-openwhisk/blob/master/docs/conductors.md . While conductor actions are powerful, writing conductor action code can be tedious. The Composer library dramatically simplifies the task of writing conductor actions. Conditional control flow for instance may be expressed as follows: composer.if(?authenticateRequest?, ?processRequest?, ?rejectRequest?) In this example, a first action validates a request, then if the request is admissible it forwards the request to a second action named processRequest. If not, it invokes the rejectRequest action instead. The Composer library automatically synthesizes the code of a conductor action that implements this flow of control. processRequest may be implemented in Javascript, rejectRequest in Python, and authenticateRequest may come from a third-party. There is no restriction on what the composed actions can be. The development of Composer actually predates conductor actions by almost a year. We (IBM Research) open sourced the first Composer library in October 2017. We later developed conductor actions as a low-level, language-independent runtime mechanism to dynamically chain action invocations and rewrote Composer (v2) to take advantage of conductor actions. Today?s Composer is a Javascript library focused on building sequential compositions of actions. But we don?t intend to stop there. In particular, we are already working on Composer for Python and on parallel composition. We think that Composer will be an important asset for OpenWhisk and, with the help of the community, we hope to accelerate its development. You can always find me on the OpenWhisk dev list or on slack. Olivier From: "David P Grove" <gro...@us.ibm.com<mailto:gro...@us.ibm.com>> To: dev@openwhisk.apache.org<mailto:dev@openwhisk.apache.org> Date: 09/28/2018 12:56 PM Subject: Donation of ibm-functions/composer to Apache OpenWhisk IBM Research would like to donate the Composer code in ibm-functions/composer to the Apache OpenWhisk incubator project. The code is already open source under the Apache 2.0 license. Unless there are objections raised here on the dev list, I will plan to submit the infra tickets on Monday to create an apache/incubator-openwhisk-composer git repo, enable Travis on it, etc. and we will migrate the code next week. --dave