Choice of programming styles - reactive, imperative or hybrid.
Function composition and adaptation (e.g., composing imperative functions with reactive).
Support for reactive function with multiple inputs and outputs allowing merging, joining and other complex streaming operation to be handled by functions.
Transparent type conversion of inputs and outputs.
Packaging functions for deployments, specific to the target platform
Adapters to expose function to the outside world as HTTP endpoints etc.
Deploying a JAR file containing such an application context with an isolated classloader, so that you can pack them together in a single JVM.
Target Platforms
Adapters for AWS Lambda, Microsoft Azure, Apache OpenWhisk and possibly other "serverless" service providers.
riff is an Open Source platform for building and running Functions, Applications, and Containers on Kubernetes. To get started running your own functions on riff, see our Docs. This project is sponsored by VMware