/cloudevents-spec

CloudEvents Specification

Primary LanguagePythonApache License 2.0Apache-2.0

CloudEvents

CloudEvents logo

Events are everywhere. However, event producers tend to describe events differently.

The lack of a common way of describing events means developers must constantly re-learn how to consume events. This also limits the potential for libraries, tooling and infrastructure to aide 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.

CloudEvents is a specification for describing event data in common formats to provide interoperability across services, platforms and systems.

CloudEvents has received a large amount of industry interest, ranging from major cloud providers to popular SaaS companies. CloudEvents is hosted by the Cloud Native Computing Foundation (CNCF) and was approved as a Cloud Native sandbox level project on May 15, 2018.

CloudEvents Documents

The following documents are available:

Latest Release Working Draft
Core Specification:
CloudEvents v1.0.1 master
Optional Specifications:
AMQP Protocol Binding v1.0.1 master
AVRO Event Format v1.0.1 master
HTTP Protocol Binding v1.0.1 master
JSON Event Format v1.0.1 master
Kafka Protocol Binding v1.0.1 master
MQTT Protocol Binding v1.0.1 master
NATS Protocol Binding v1.0.1 master
WebSockets Protocol Binding - master
Protobuf Event Format v1.0-rc1
Web hook v1.0.1 master
Additional Documentation:
CloudEvents Adapters - master
CloudEvents SDK Requirements - master
Documented Extensions - master
Primer v1.0.1 master
Proprietary Specifications - master

If you are new to CloudEvents, it is recommended that you start by reading the Primer for an overview of the specification's goals and design decisions, and then move on to the core specification.

Since not all event producers generate CloudEvents by default, there is documentation describing the recommended process for adapting some popular events into CloudEvents, see CloudEvents Adapters.

SDKs

In addition to the documentation mentioned above, there is also an SDK proposal. A set of SDKs is also being developed:

Community

Learn more about the people and organizations who are creating a dynamic cloud native ecosystem by making our systems interoperable with CloudEvents.

  • Our Governance documentation.
  • How to contribute via issues and pull requests.
  • Contributors: people and organizations who helped us get started or are actively working on the CloudEvents specification.
  • Demos & open source -- if you have something to share about your use of CloudEvents, please submit a PR!

Process

The CloudEvents project is working to formalize the specification based on design goals which focus on interoperability between systems which generate and respond to events.

In order to achieve these goals, the project must describe:

  • Common attributes of an event that facilitate interoperability
  • One or more common architectures that are in active use today or planned to be built by its members
  • How events are transported from producer to consumer via at least one protocol
  • Identify and resolve whatever else is needed for interoperability

Communications

The main mailing list for e-mail communications:

And a #cloudevents Slack channel under CNCF's Slack workspace.

For SDK related comments and questions:

Meeting Time

See the CNCF public events calendar. This specification is being developed by the CNCF Serverless Working Group. This working group meets every Thursday at 9AM PT (USA Pacific) (World Time Zone Converter):

Please see the meeting minutes doc for the latest information on how to join the calls.

Recording from our calls are available here.

Periodically, the group may have in-person meetings that coincide with a major conference. Please see the meeting minutes doc for any future plans.