The next version of RPDE "id" should be equal to the "id" URI used within the Event.
The next version of RPDE "modified" will be made an ISO 8601 date, and the option to use an integer "modified" (including the afterChangeNumber) representation removed.
All JSON-LD data returned from the Opportunity API and RPDE feeds includes a "modified" property (added to Thing), which can be used to compare any object in the object graph. This works separately and in parallel with the RPDE id/modified mechanism.
Proposer
ODI
Use Case
In order to safely combine updates from the Opportunity API and Open Data Feeds, a common sense of "modified" timestamp is required.
For example:
/events/123
shows"remainingAttendeeCapacity": 1
:/events/123
received from open data feed is"remainingAttendeeCapacity": 0
How do we reconcile which is the most recent between these in order to update a broker's search index or item cache?
Proposal
Option 1
"modified"
property in the same format as RPDE (unix timestamp preferred - https://github.com/openactive/realtime-paged-data-exchange/issues/89), and must include an"id"
field to match the RPDE"id"
"id"
property to"identifier"
for consistency (https://github.com/openactive/realtime-paged-data-exchange/issues/87).Option 2
"id"
should be equal to the"id"
URI used within the Event."modified"
will be made an ISO 8601 date, and the option to use an integer"modified"
(including theafterChangeNumber
) representation removed.Option 3
Thing
), which can be used to compare any object in the object graph. This works separately and in parallel with the RPDE id/modified mechanism.Option 4
"Last-Modified"
header in the same format as RPDE (unix timestamp preferred, with sub-millisecond precision - https://github.com/openactive/realtime-paged-data-exchange/issues/89), and must include an"id"
field to match the RPDE"id"