Humans have problems in the real world. The purpose of computers is to help humans. Many computer systems model the real world in order solve these problems. One fundamental property of the real world is time. It exists everywhere and is predictable. Time is an universal common denominator for everything, including computers. Even if the systems are not connected physically, they are still linked through the time dimension. This allows to correlate data and extract useful information.

Simple systems might get away with blocking constraints to achieve consistency. But this gets too blocking for complex systems which have to process many events from multiple sources. One solution is remove the blocking constraints and let the data flow. Then you have take temporal snapshots of the data to see if it is consistent enough to process further. This shifts the validation from the input to the output. This is in line with the Unix philosophy: “Be liberal in what you accept, and conservative in what you send”.

The quality of the data depends also on the precision of the physical clocks. This is especially important in virtual environments such as the cloud. So take your time to configure each clock in the system to reduce time inconsistencies.

Temporal Consistency

Links: