openactive / realtime-paged-data-exchange

OpenActive Realtime Paged Data Exchange Specification
https://www.openactive.io/realtime-paged-data-exchange/
Other
6 stars 1 forks source link

Use maximum precision for `afterTimestamp` and `modified` #102

Open nickevansuk opened 3 years ago

nickevansuk commented 3 years ago

There's an issue where timestamps get truncated: if precision in the feed is different to the precision in the database then RPDE will fail

Recommend using the highest level of precision possible and ensuring it matches the database.

Example of nanoseconds: 1620400023901660 (fits within max int in PHP: 9223372036854775807)

nathansalter commented 3 years ago

This is what we use on Bookteq currently to solve this exact issue. Haven't had any issues with it so far, and we're well away from hitting the limit. Doesn't fit within 32 bit signed/unsigned ints, but that's much more of a language problem to solve. Most platforms nowadays are 64bit, with the notable exception of the Raspberry Pi. If you're working on a 32 bit platform, it should be recommended to use second precision rather than milli/nano.

nathansalter commented 3 years ago

This is related to this issue here: https://github.com/openactive/realtime-paged-data-exchange/issues/95