(fork to use fixed-length vector clock, so that timestamps can be lexicographically sorted)
A Hybrid Logical Clock is a resilient and simple distributed clock that provides the ability for identity and ordering of messages in a distributed system.
It is an improvement over Lamport timestamps and Vector Clocks and does not need the strong guarantees of Google’s True Time.
The Hybrid Logical Clock tolerates NTP kinks and mismatched clocks while still providing excellent behaviour and remaining stable.
Get the next id for every new message created:
id = hlc.nxt()
When receiving a remote message, update our clock with the remote information:
hlc.recv(remote.id)
And that’s it.