riff is for functions

riff is for functions

  • Docs
  • Blog
  • GitHub
  • Slack

›Recent Posts

Recent Posts

  • 👋
  • Announcing riff v0.5.0
  • From Monolith to riff Functions at SpringOne Platform 2019
  • Mark Fisher and Cornelia Davis' Keynote at SpringOne Platform 2019
  • Announcing riff v0.4.0

Announcing riff v0.5.0

February 10, 2020

We are happy to announce riff v0.5.0. Thanks to all riff, Cloud Native Buildpack, Knative, Liiklus, KEDA, Contour, k14s, and other contributors.

The riff CLI can be downloaded from our releases page on GitHub. The getting started guides will help you to run your first function.

riff v0.5 Streaming Architecture

Streaming

This release introduces a new experimental streaming capability. Functions deployed using the Streaming Runtime are able to consume and produce streams of events. The Node and Java function invokers have been extended to support a new streaming invoker specification.

Here is an example of a JavaScript streaming function interface with 2 input and 1 output stream, using the node function invoker.

module.exports = (inputStreams, outputStreams) => {
    const { impressions, orders } = inputStreams;
    const { conversions } = outputStreams;
    // do something
};
module.exports.$interactionModel = 'node-streams';

Gateways and Processors

Gateways connect streams to a messaging service like Kafka or Pulsar. Processors connect functions with gateways.

This release includes gateways for Kafka and Pulsar, and a non-production in-memory gateway. All three are based on Liiklus.

Other Highlights of v0.5.0

  • kapp is used for installs instead of helm.
  • Each runtime (core, knative, streaming) can be installed or uninstalled independently.
  • Deployers and processors now consistently use PodTemplateSpec to define containers and volumes.
  • CRD status now favor object references instead of resource names.

Knative Runtime

  • The Knative runtime has been upgraded to use Knative Serving v0.12.1.
  • Contour has replaced Istio as the ingress controller, and works with both the Knative and the Core runtime. Note that Deployers are only accessible from inside the cluster by default, --ingress-policy External is now required in order to route HTTP traffic from outside the cluster.
  • The CLI also provides for configuration of
    • --min-scale and --max-scale
    • --container-concurrency

Core Runtime

  • We added Ingress support to the Core Runtime, allowing external HTTP requests to target functions, apps, and containers.

Next Steps

We are discussing this streaming model with the community, and exploring ways to enable streaming for other types of workloads beyond streaming functions.

Recent Posts
  • Streaming
  • Other Highlights of v0.5.0
    • Knative Runtime
    • Core Runtime
  • Next Steps
riff is for functions
Docs
Versions
Community
BlogGitHubSlackKnativeTwitter
More
Privacy PolicyTerms of UseCode of Conduct
Deployed by Netlify
Copyright © 2021 VMware, Inc