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





Reply via email to