Measures of Correctness in Distributed Systems

Let's see how to measure the correctness of a distributed system.

Correctness

We can define the correctness of a system in terms of the properties it must satisfy.

Measures of Correctness

The correctness measures for distributed systems are the two properties they must satisfy. These are the following:

  • Safety property
  • Liveness property

Safety

A safety property defines something that must never happen in a correct system.

Press + to interact
The oven temperature is exceeding the specified limit, this shouldn't happen
The oven temperature is exceeding the specified limit, this shouldn't happen

Liveness

A liveness property defines something that must eventually happen in a correct system.

Press + to interact
Oven temperature eventually reaching the specified limit, it must happen
Oven temperature eventually reaching the specified limit, it must happen

Example of a correct system

If we consider the correct properties of an oven, we can say that “the oven not exceeding a maximum temperature threshold” is a safety property. The property of “the oven eventually reaching the temperature we specified via the button” is a liveness property.

Similar to this example, it’s usually more important in distributed systems to ensure the system satisfies the safety property than the liveness one.

Press + to interact
The safety property weighs more than liveness in distributed systems
The safety property weighs more than liveness in distributed systems

Throughout this course, it will become clear that there is an inherent tension between safety and liveness properties. Actually, as we will see later in this course, there are some problems that make it physically impossible to satisfy both kinds of properties. So, we need to compromise some liveness properties to maintain safety.

Get hands-on with 1400+ tech skills courses.