CloudEvents is an open-source specification for describing event data in a standard way and is intended to ease event declaration and delivery across services, platforms, and beyond. The driving force behind the specification is the Cloud Native Computing Foundation (CNCF), which recently announced that the specification had reached a version 1.0 milestone.
In April 2017, the CNCF initiated a working group (WG) to explore the intersection of cloud-native and serverless technology strengthened by participants from AWS, Google, Microsoft, IBM, SAP, Red Hat, VMware, and more. Clemens Vasters, principal architect, Messaging Services and Standards at Microsoft, shared his view on the collaboration with InfoQ:
We've been involved in the CloudEvents project from the start, bringing our experience in hyper-scale messaging and eventing applications and our customers’ requirements and scenarios into the effort. From a collaboration perspective, this project has been hugely successful. CloudEvents has been shaped by over twenty different entities, including all major public cloud platform providers and many platform users. The atmosphere was very productive and constructive throughout the project, despite the fierce marketplace competition, and we're jointly proud of where we landed.
The CNCF accepted CloudEvents as a Sandbox project in May 2018, as a starting point to mature towards incubation, and ultimately graduation when meeting the CNCF's criteria. Now the CNCF Technical Oversight Committee (TOC) had promoted the CloudEvents sandbox project to the "incubation" level, which is the middle layer in CNCF's landscape model. The WG itself will continue to focus on getting CloudEvents to the "graduation" maturity level in the future. Vasters told InfoQ:
The maturity level graduation out of the now achieved incubation level will primarily depend on the uptake. The SDKs will still evolve some, and there will be further extensions, but we don't plan significant updates to the core from here on forward. The goal is for the spec to be stable.
With the specification, developers should be able to easily create serverless applications that can accept events from various other cloud platforms by leveraging the standardized metadata that CloudEvents offers. Vasters told InfoQ:
Ultimately, we all wanted for customers to be able to build event-driven applications consistently, no matter from where events are being raised. We believe that we’ve achieved those goals with CloudEvents v1.0 and are looking forward to the industry adopting these conventions, and you will see us lead by example - customers should expect for CloudEvents to play a significant role in our Azure platform offerings in the future.
Furthermore, Vasters stated:
The goal was to provide an industry definition and open framework for what an "event" is, what its minimal semantic elements are, and how events are encoded for transfer and how they are transferred and do so using the major encodings and application protocols in use today rather than inventing new ones.
Currently, several participants of the working group have adopted CloudEvents into their service offerings, such as Red Hat’s Event Flow, and SAP’s Kyma platforms. Furthermore, Microsoft supported an earlier CloudEvents version in their Event Grid service, and the expectation is it will make it their native format soon with version 1.0 in exchange for their proprietary format.
Besides cloud vendors supporting CloudEvents, some offer services that do not necessarily endorse this format. For instance, Amazon has EventBridge, a service for customers to build and manage event-driven solutions. Or TriggerMesh, which recently released the EveryBridge platform offering, a cross-cloud event bus that enables event-driven cloud-native applications across multiple cloud providers and on-prem infrastructures.