The Cloud Native Computing Foundation (CNCF) wants to foster greater interoperability between serverless platforms, through its release of the CloudEvents specification. The project is at version 0.1 iteration, and hopes that it will be approved as a CNCF sandbox project in June.
The CloudEvents specification provides (formerly called OpenEvents) a path that would allow any two components to transfer an event, regardless of whether they are functions, apps, containers or services, said Doug Davis, an IBM senior technical staff member at IBM and a member of the CNCF serverless working group.
“Much in the same way HTTP — in its most basic form — helped interoperability between any two components by standardizing how to represent well-defined metadata about the message being transferred, CloudEvents is doing the same thing,” said Davis. “Defining the common metadata will aid in the transferring of an event from any producer to any consumer.”
CNCF established the serverless working group to assist key cloud stakeholders to create a vendor-neutral approach to serverless, and to event-driven architecture more broadly. To date, the working group has published a white paper and a landscape of current serverless players.
CloudEvents was created to describe event data in a common way. In event-driven architecture, a producer needs to be able to generate events before any consumer is listening, and consumers need to be able to flag interest in an event (or class of events) that is not yet being produced. The producer application could run anywhere and create data such as temperature readings or sports results. Consumers are applications that, again, could run anywhere. Then there is middleware, which might transform events from the producer to be read by the consumer, or filter events based on certain conditions, or monitor event flow and ops data.
Already, this type of architecture could involve multiple players that each describe the event in slightly different ways, creating complexity and interoperability nightmares.
The CloudEvents GitHub repo announces that the focus of the specification aims to overcome the developer challenge of learning multiple vendor and platform approaches to receiving events. “This also limits the potential for libraries, tooling and infrastructure to aid the delivery of event data across environments, like SDKs, event routers or tracing systems. The portability and productivity we can achieve from event data is hindered overall,” the landing page states.
Davis explains in more detail: “The challenge comes mainly in the form of the amount of work, and a priori knowledge, required by a receiver of an event to do its job. For example, a component that is acting as a router, dispatching events to various backend systems based on certain characteristics of the event, should be able to do this without having to actually understand the full event itself.”
Davis says the CloudEvents specification will enable this type of event action. “Simply defining the common metadata and where it can be found makes it easier for people to extract this data,” said Davis, adding that by having this type of specification will also enable businesses to start building new tools for event architectures.
Developers can sign up for further information on the spec, join a weekly call with the CNCFG’s serverless working group, or view the CloudEvents GitHub repo and contribute directly.
The Cloud Native Computing Foundation (CNCF) is a sponsor of The New Stack.