Por ejemplo, el proceso A envía un mensaje a memoria solicitando una operación de escritura, y posteriormente envía una solicitud de escritura al proceso B.
El algoritmo sigue las siguientes reglas: En pseudocódigo el algoritmo para enviar un mensaje es: Algoritmo para la recepción del mensaje: Sean ‘a’ y ‘b’ dos eventos del mismo proceso y C(x) la marca de tiempo de un cierto evento x, C(a) nunca puede ser igual que C(b).
Esta relación solo tiene una dirección, llamada condición de consistencia del reloj: si un evento ocurre antes que otro, el reloj lógico de dicho evento también ocurre antes que el del otro.
Hay una fuerte condición de consistencia del reloj, que es bidireccional (si C(a) < C(b) entonces a → b) puede ser obtenida utilizando otras técnicas, como por ejemplo el reloj vectorial.
No obstante, los tiempos de Lamport pueden ser usados para crear un orden total de eventos en un sistema distribuido usando un mecanismo arbitrario que permita romper relaciones.
Los procesos de la misma máquina se pueden ordenar basándose en el reloj del sistema.
De este modo, dos marcas de tiempo pueden ser iguales en un Sistema Distribuido, pero si aplicamos el algoritmo del reloj lógico los eventos ocurrirán manteniendo un orden parcial estricto.
El reloj lógico de Lamport nos lleva a una situación en la que todos los eventos en un Sistema Distribuido están totalmente ordenados.
Este tipo de información puede ser importante cuando intentamos reproducir eventos en un Sistema Distribuido.
La teoría dice que, si un nodo se cae, si conocemos la relación causal entre los mensajes, entonces podremos reproducir dichos mensajes y respetar la relación causal para llevar al nodo al estado en el que estaba.