Skip to content

Commit

Permalink
starter doc explaining key concepts from the spec
Browse files Browse the repository at this point in the history
  • Loading branch information
ultrasaurus committed Feb 1, 2018
1 parent 14b4e71 commit 3c71045
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions about/concepts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

# CloudEvents Concepts

**Event**: data representing an occurrence, a change in state, that something happened (or did not happen).

**Occurrence**: something that happens (or doesn’t happen) and is detected by a software system (“source”).

Events include context and data. Each occurrence is uniquely identified by the data of the event. Events represent facts and therefore do not include a destination, whereas messages convey intent, transporting data from a source to a given destination.

## Eventing

Events are commonly used in server-side code to connect disparate systems where the change of state in one system causes code to execute in another. For example, a source may generate an event when it receives an external signal (e.g. HTTP or RPC) or observes a changing value (e.g. an IoT sensor or period of inactivity).

To illustrate how a system uses CloudEvents, the simplified diagram below shows how an **event** from a **source** triggers an **action**.

![alt text](img/source-event-action.png "A box representing the source with arrow pointing to a box representing the action. The arrow is annotated with 'e' for event and 'protocol'.")

The source generates a message where the event is encapsulated in a protocol. The event arrives to a destination, triggering an action which is provided with the event data.

**Source**: the software instance that generates the event at runtime.

A **source** is a specific instance of a **source-type** which allows for staging and test instances. Open source software of a specific **source-type** may be deployed by multiple companies or providers.

Events can be delivered through various industry standard protocols (e.g. HTTP, AMQP, MQTT, SMTP), open-source protocols (e.g. Kafka, NATS), or platform/vendor specific protocols (AWS Kinesis, Azure Event Grid).

An **action** processes an **event** defining a behavior or effect which was triggered by a specific **occurrence** from a specific **source**.


Binary file added about/img/source-event-action.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3c71045

Please sign in to comment.