CloudEvents je otevřená specifikace pro popis dat událostí (events) v běžných formátech. Cílem je poskytnout konzistentní způsob, jakým různé systémy (cloudoví poskytovatelé, SaaS platformy, lokální aplikace) definují metadata událostí, čímž se zjednodušuje deklarace a doručování událostí napříč platformami.
Projekt spadá pod organizaci Cloud Native Computing Foundation (CNCF).
V architektuře řízené událostmi (EDA) generuje každý systém události v jiném formátu. Například:
To nutí vývojáře psát specifický kód pro parsování každého typu zdroje. CloudEvents tento chaos sjednocuje definováním standardní „obálky“ (envelope) kolem dat události.
Specifikace definuje sadu povinných a volitelných polí, která musí každá událost obsahovat, bez ohledu na to, co je jejím obsahem (payload).
com.github.pull_request.opened).application/json).CloudEvents podporují různé formáty zápisu, nejčastěji JSON.
{
"specversion" : "1.0",
"type" : "com.priklad.vytvoreni_objednavky",
"source" : "/eshop/objednavky",
"id" : "A234-1234-1234",
"time" : "2026-01-03T15:00:00Z",
"datacontenttype" : "application/json",
"data" : {
"zakaznik_id" : "8899",
"castka" : 1250.50
}
}
CloudEvents nejsou vázány na jeden přenosový protokol. Specifikace definuje, jak se události mapují na různé protokoly (Protocol Bindings):
V prostředí Serverless hrají CloudEvents klíčovou roli:
1. **Nezávislost na cloudu (Cloud Agnostic):** Umožňují snadnější migraci funkcí mezi AWS Lambda, Google Cloud Functions a Azure Functions. 2. **Ekosystém nástrojů:** Existují knihovny pro většinu jazyků (Java, Go, Python, JavaScript), které automaticky validují a parsují standardizované události. 3. **Event Mesh:** Umožňuje vytvářet komplexní sítě, kde událost z jednoho cloudu vyvolá akci v cloudu jiném.
— Související termíny: Serverless, FaaS, JSON, Middleware, Webhook.