You may be wondering why the
Entry
type includes aUUID
identifier. It already has a timestamp, which is an identity of a sort. Isn’t that timestamp unique enough?Maybe, but you will sleep better at night if you assume it is not unique enough. A timestamp has something like millisecond accuracy. A computing device can do thousands, even millions of operations in that time. Two changes to the same value on the same device may very well fall on exactly the same tick of the timestamp clock.
What would happen if we used the timestamp in isolation? If two changes collided — had the same timestamp — the ‘winner’ would effectively be random. Your devices could easily pick different outcomes, and your type will have diverged — your app is no longer in sync. To avoid this, we need some way to pick the same winner on all devices, even if the timestamps are exactly the same. For that, we add the
UUID
. It ensures a deterministic result in cases where the timestamps collide.
↧
A First Replicating Type
↧