Time, Clocks, and the Ordering of Events in a Distributed System
The concept of one event happening before
another in a distributed system is examined, and
is shown to define a partial ordering of the events.
 A distributed algorithm is given for synchronizing 
a system of logical clocks which can be used to totally
order the events.  The use of the total ordering 
is illustrated with a method for solving synchronization
problems.  The algorithm is then specialized 
for synchronizing physical clocks, and a bound is derived
on how far out of synchrony the clocks can 
become.  
CACM July, 1978
Lamport, L.
