Events are the bloodstream of system integration. Despite the critical role of events in cloud computing today, there is no widely adopted, common way of describing them. Every integration requires custom libraries, tools, and dedicated development time. CloudEvents is a new industry initiative to standardize the way events are defined and passed between systems. CloudEvents enable interop between cloud providers and SaaS systems, as shown in Austen Collins recent demo at KubeCon, where he showed 12 different systems handle CloudEvents originating from Azure Event Grid and AWS Event Gateway.

Webhooks

The dominant pattern used today for exposing events from SaaS platforms is webhooks. Webhooks were first introduced in 2007 by Jeff Lindsay to standardize the way systems are integrated on the internet. While webhooks embraced HTTP as the protocol, they stopped short of standardizing specifics of the event data that is exchanged.

CloudEvents initiative fills this gap by not only providing a model and type system for representing events but also specifying a binding of the generic event representation to the HTTP protocol.

CloudEvents are relevant to any SaaS platform that wishes to expose its own events or accept events from other platforms in a standardized way to reduce integration efforts.

Serverless webhooks

Serverless webooks is an evolution of the webhook integration pattern that greatly reduces the friction of implementing webhooks. Serverless webhooks not only specify the protocols and data structures but also provide prescriptive programming models and environments for implementing them.

Serverless webhooks and CloudEvents are complementary in attempting to reduce the effort and friction of integrating cloud systems.

Some recent implementations of serverless webhooks include Twilio Functions or Netlify Functions.

Serverless webhooks with CloudEvents for your SaaS

Extend is an embedded serverless webhook platform for your SaaS. With Extend, users of a SaaS platform can integrate external systems or customize core platform behavior by scripting, without having to set up and maintain a service that implements a webhook.

One of the features of Extend is the support for custom programming models and protocols. Using this capability, a SaaS provider can easily support CloudEvent messages sent over HTTP along with a convenient programming model in JavaScript. Check out the goextend/cloudevents-extend-api on GitHub for details.

Extend support for CloudEvents programming model

With CloudEvents support for Extend, end users of the SaaS platform benefit not only from the ease of use of serverless webhooks but also from the standard and familiar concepts of CloudEvents.