Skip to content

Commit

Permalink
Issue cloudevents#331: Clarify scope of source and id uniqueness
Browse files Browse the repository at this point in the history
Signed-off-by: Alan Conway <aconway@redhat.com>
  • Loading branch information
alanconway committed Feb 20, 2019
1 parent 8786d0e commit 43413ce
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ The following abstract data types are available for use in attributes.
- `Map` - `String`-indexed dictionary of `Any`-typed values.
- `Any` - Either a `Binary`, `Integer`, `Map` or `String`.
- `URI-reference` - String expression conforming to `URI-reference`
as defined in
(a URL, URI or relative reference) as defined in
[RFC 3986 §4.1](https://tools.ietf.org/html/rfc3986#section-4.1).
- `Timestamp` - String expression as defined in
[RFC 3339](https://tools.ietf.org/html/rfc3339).
Expand Down Expand Up @@ -202,11 +202,13 @@ help intermediate gateways determine how to route the events.

### source
* Type: `URI-reference`
* Description: This describes the event producer. Often this will include
information such as the type of the event source, the organization
publishing the event, the process that produced the event, and some unique
identifiers. The exact syntax and semantics behind the data encoded in the URI
is event producer defined.
* Description: Identifies the event producer.
The source MAY include a URI authority
[RFC3986 §3.2](https://tools.ietf.org/html/rfc3986#section-3.2)
associated with the producer, providing an internet-wide unique identifier.
If not, it is unique within some application-specific scope.
The details of a source URI are determined by the producer, the consumer
SHOULD treat it as an opaque identifier.
* Constraints:
* REQUIRED
* Examples
Expand All @@ -224,7 +226,12 @@ help intermediate gateways determine how to route the events.
* Constraints:
* REQUIRED
* MUST be a non-empty string
* MUST be unique within the scope of the producer
* MUST be unique within the scope of the producer. A producer MUST
NOT generate events with identical "source" and "id" values,
unless it is generating an identical duplicate of an event that
may have been lost due to a transport failure. A consumer SHOULD
ignore events that have the same "source" and "id" as an event
already processed.

### time
* Type: `Timestamp`
Expand Down

0 comments on commit 43413ce

Please sign in to comment.