From 8c178ae781adb47c1b79d63d6023e9da10352099 Mon Sep 17 00:00:00 2001 From: Klaus Deissner Date: Fri, 19 Apr 2019 16:06:39 +0200 Subject: [PATCH 1/6] Added producer, consumer and intermediate to terminology section. Signed-off-by: Klaus Deissner --- spec.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/spec.md b/spec.md index 0e75baa15..23bc85175 100644 --- a/spec.md +++ b/spec.md @@ -98,6 +98,20 @@ types of information: the [Data](#data) representing the Occurrence and [Context](#context) metadata providing contextual information about the Occurrence. +#### Producer +The "producer" is a specific instance, process or device that produces the event +based on the occurrence. + +#### Source +The "source" is the logical system or service where the occurrence happened. In +a distributed system it may consist of multiple [Producers](#producer). + +#### Consumer +A "consumer" receives the event and acts upon it. + +#### Intermediary + + #### Context Context metadata will be encapsulated in the @@ -162,7 +176,12 @@ within the same JSON object. The following attributes are REQUIRED to be present in all CloudEvents: +<<<<<<< HEAD #### id +======= +### specversion +<<<<<<< HEAD +>>>>>>> Added producer, consumer and intermediate to terminology section. - Type: `String` - Description: Identifies the event. @@ -176,7 +195,20 @@ The following attributes are REQUIRED to be present in all CloudEvents: - Constraints: - REQUIRED - MUST be a non-empty string +<<<<<<< HEAD - MUST be unique within the scope of the producer +======= +======= +* Type: `String` +* Description: The version of the CloudEvents specification which the event + uses. This enables the interpretation of the context. Compliant event + producers MUST use a value of `0.2` when referring to this version of + the specification. +* Constraints: + * REQUIRED + * MUST be a non-empty string +>>>>>>> Added producer, consumer and intermediate to terminology section. +>>>>>>> Added producer, consumer and intermediate to terminology section. #### source @@ -412,6 +444,7 @@ Consider the following to prevent inadvertent leakage especially when leveraging - Context Attributes +<<<<<<< HEAD Sensitive information SHOULD NOT be carried or represented in context attributes. @@ -429,6 +462,23 @@ Consider the following to prevent inadvertent leakage especially when leveraging Transport level security SHOULD be employed to ensure the trusted and secure exchange of CloudEvents. +======= + Sensitive information SHOULD NOT be carried or represented in context attributes. + + CloudEvent producers, consumers, and intermediaries MAY introspect and log context + attributes. + +* Data + + Domain specific [data](#data) SHOULD be encrypted to restrict visibility to + trusted parties. The mechanism employed for such encryption is an agreement between + producers and consumers and thus outside the scope of this specification. + +* Transport Bindings + + Transport level security SHOULD be employed to ensure the trusted and + secure exchange of CloudEvents. +>>>>>>> Added producer, consumer and intermediate to terminology section. # Example From 5f627cad9e359661880fe84e562e6ea79bb05727 Mon Sep 17 00:00:00 2001 From: Klaus Deissner Date: Fri, 19 Apr 2019 17:13:13 +0200 Subject: [PATCH 2/6] Finished the definitions of source, producer, consumer and intermediary. Signed-off-by: Klaus Deissner --- spec.md | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/spec.md b/spec.md index 23bc85175..9078aac0d 100644 --- a/spec.md +++ b/spec.md @@ -176,12 +176,7 @@ within the same JSON object. The following attributes are REQUIRED to be present in all CloudEvents: -<<<<<<< HEAD #### id -======= -### specversion -<<<<<<< HEAD ->>>>>>> Added producer, consumer and intermediate to terminology section. - Type: `String` - Description: Identifies the event. @@ -195,20 +190,7 @@ The following attributes are REQUIRED to be present in all CloudEvents: - Constraints: - REQUIRED - MUST be a non-empty string -<<<<<<< HEAD - MUST be unique within the scope of the producer -======= -======= -* Type: `String` -* Description: The version of the CloudEvents specification which the event - uses. This enables the interpretation of the context. Compliant event - producers MUST use a value of `0.2` when referring to this version of - the specification. -* Constraints: - * REQUIRED - * MUST be a non-empty string ->>>>>>> Added producer, consumer and intermediate to terminology section. ->>>>>>> Added producer, consumer and intermediate to terminology section. #### source @@ -444,7 +426,6 @@ Consider the following to prevent inadvertent leakage especially when leveraging - Context Attributes -<<<<<<< HEAD Sensitive information SHOULD NOT be carried or represented in context attributes. @@ -462,23 +443,6 @@ Consider the following to prevent inadvertent leakage especially when leveraging Transport level security SHOULD be employed to ensure the trusted and secure exchange of CloudEvents. -======= - Sensitive information SHOULD NOT be carried or represented in context attributes. - - CloudEvent producers, consumers, and intermediaries MAY introspect and log context - attributes. - -* Data - - Domain specific [data](#data) SHOULD be encrypted to restrict visibility to - trusted parties. The mechanism employed for such encryption is an agreement between - producers and consumers and thus outside the scope of this specification. - -* Transport Bindings - - Transport level security SHOULD be employed to ensure the trusted and - secure exchange of CloudEvents. ->>>>>>> Added producer, consumer and intermediate to terminology section. # Example From 1e77e660562fcf1eddd388e9722b2beffc4253f4 Mon Sep 17 00:00:00 2001 From: Klaus Deissner Date: Fri, 19 Apr 2019 18:07:49 +0200 Subject: [PATCH 3/6] Fixed typo and wording Signed-off-by: Klaus Deissner --- spec.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec.md b/spec.md index 9078aac0d..b796e4f95 100644 --- a/spec.md +++ b/spec.md @@ -104,7 +104,9 @@ based on the occurrence. #### Source The "source" is the logical system or service where the occurrence happened. In -a distributed system it may consist of multiple [Producers](#producer). +a distributed system it may consist of multiple [Producers](#producer). If a +source is not aware of CloudEvents, a producer creates the CloudEvent on behalf +of the source. #### Consumer A "consumer" receives the event and acts upon it. From cb228c4c3dea164cf5a436b35f5026cea8e7ee21 Mon Sep 17 00:00:00 2001 From: Klaus Deissner Date: Mon, 22 Apr 2019 00:27:54 +0200 Subject: [PATCH 4/6] Fixed usage of 'may' Signed-off-by: Klaus Deissner --- spec.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec.md b/spec.md index b796e4f95..c00f7845f 100644 --- a/spec.md +++ b/spec.md @@ -104,7 +104,7 @@ based on the occurrence. #### Source The "source" is the logical system or service where the occurrence happened. In -a distributed system it may consist of multiple [Producers](#producer). If a +a distributed system it might consist of multiple [Producers](#producer). If a source is not aware of CloudEvents, a producer creates the CloudEvent on behalf of the source. From faddf07e3858435bc859314ca0aa5ebf0bd1e9f7 Mon Sep 17 00:00:00 2001 From: Klaus Deissner Date: Tue, 23 Apr 2019 09:28:07 +0200 Subject: [PATCH 5/6] Fix typo Eliminate ambiguities in definition of producer Signed-off-by: Klaus Deissner --- spec.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spec.md b/spec.md index c00f7845f..99c36b8b1 100644 --- a/spec.md +++ b/spec.md @@ -99,8 +99,9 @@ types of information: the [Data](#data) representing the Occurrence and Occurrence. #### Producer -The "producer" is a specific instance, process or device that produces the event -based on the occurrence. + +The "producer" is a specific instance, process or device that creates the data +structure describing the CloudEvent. #### Source The "source" is the logical system or service where the occurrence happened. In @@ -109,7 +110,9 @@ source is not aware of CloudEvents, a producer creates the CloudEvent on behalf of the source. #### Consumer -A "consumer" receives the event and acts upon it. + +A "consumer" receives the event and acts upon it. It uses the context and data +to execute some logic, which might lead to the occurrence of new events. #### Intermediary From c23e305fad462d1dcb8601038e836df505108111 Mon Sep 17 00:00:00 2001 From: Klaus Deissner Date: Wed, 8 May 2019 13:15:25 +0200 Subject: [PATCH 6/6] Source as the context of the occurence Signed-off-by: Klaus Deissner --- spec.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/spec.md b/spec.md index 99c36b8b1..20c2ea78f 100644 --- a/spec.md +++ b/spec.md @@ -104,10 +104,11 @@ The "producer" is a specific instance, process or device that creates the data structure describing the CloudEvent. #### Source -The "source" is the logical system or service where the occurrence happened. In -a distributed system it might consist of multiple [Producers](#producer). If a -source is not aware of CloudEvents, a producer creates the CloudEvent on behalf -of the source. + +The "source" is the context in which the occurrence happened. In a distributed +system it might consist of multiple [Producers](#producer). If a source is not +aware of CloudEvents, an external producer creates the CloudEvent on behalf of +the source. #### Consumer @@ -116,6 +117,10 @@ to execute some logic, which might lead to the occurrence of new events. #### Intermediary +An "intermediary" receives a message containing an event for the purpose of +forwarding it to the next receiver, which might be another intermediary or a +[Consumer](#consumer). A typical task for an intermediary is to route the event +to receivers based on the information in the [Context](#context). #### Context