Why Clocks Break Distributed Systems
An event can happen later and still receive an earlier timestamp.
Consider two related operations handled by different nodes. Node A records a profile update at 10:00:00.120. The update then leads to an account deletion on Node B, whose clock is slightly behind and records it at 10:00:00.115. The deletion happened later, but sorting by timestamp places it first.
Clock skew does not change the actual execution order. The problem appears when a system treats physical timestamps as authoritative. Conflict resolution, last-write-wins policies, or audit pipelines can then assign the wrong precedence to valid events.
Physical timestamp order, real-time order, and causal order can differ in a distributed system. Reliable event ordering requires an ordering mechanism that provides the guarantee the system needs.
This newsletter examines:
Why Network Time Protocol (NTP) reduces drift without eliminating ordering uncertainty.
How Lamport clocks preserve causal precedence.
How vector clocks expose concurrent updates.
How ordering choices shape consistency guarantees.
How bad ordering corrupts data and audit trails.
A natural first response to clock skew is to synchronize the clocks more closely. NTP does exactly that, but synchronization reduces uncertainty rather than removing it.
NTP reduces drift but leaves uncertainty#
NTP periodically estimates a machine’s offset from time servers and adjusts its local clock. This keeps clocks reasonably aligned, but it does not make them identical.
Several sources of uncertainty remain. Hardware oscillators drift at different rates, synchronization happens periodically, and network delays vary. Asymmetric network paths can also distort offset estimates when a request and its response experience different transit times.
The result is residual uncertainty in the clocks. Two nodes can record nearby events with timestamps that do not reflect their real-time or causal order. NTP does not give application logic a universal hard bound that makes timestamp comparison safe for correctness-sensitive ordering.