Skip to content

Should a ldes:timestampPath always be present and the members be in order? #62

@smessie

Description

@smessie

Since a Linked Data Event Stream (LDES) is a stream of events in linked data, and events occur at specific points in time, each member (event) should have a timestamp.

I propose making this explicit in the specification by requiring that:

  1. An LDES MUST have an ldes:timestampPath property set.
  2. Every member in the LDES MUST have a timestamp value using this property.

Depending on the outcome of #61, if a member received from the backend system lacks a timestamp, the ingestion process could attach one using the timestamp of ingestion. This approach is already suggested at the end of the second-to-last note in section 2 of the current specification, but I propose formalizing it instead of leaving it as a note.

Additionally, I want to open the discussion on requiring that members MUST be added to the LDES in ascending order. Since an LDES is a stream of events, ordering should be expected, but this is not explicitly stated in the specification. Enforcing this would ensure that after a client replicates the entire LDES, any new members found during synchronization are guaranteed to be newer.

These requirements will facilitate a more efficient implementation of smarter state management using timestampPath in the ldes-client reference implementation rdf-connect/ldes-client#19.

  • The first requirement ensures that state management can be applied to any LDES.
  • The second requirement aligns with an existing assumption in the proposal, but since the current specification does not enforce ordering, this needs to be explicitly stated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions