openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Olivier Tardieu" <tard...@us.ibm.com>
Subject Re: Donation of ibm-functions/composer to Apache OpenWhisk
Date Fri, 28 Sep 2018 23:57:21 GMT
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" <groved@us.ibm.com>
To:     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





Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message