What is Different in a Distributed System?

Let's explore the thing that makes distributed systems different.

Usecase of time in software systems

One of the main use cases of time in a software system is to determine the order of different events.

In practice, this can mean very different things.

Press + to interact

Examples

A system might want to impose an order to requests received concurrently by different clients to determine in which order the effects of each request should take place.

A different example is one where a system administrator might investigate an incident. They may do it by looking at the system logs and inferring relationships between different events, and use the timestamp of the logs associated with these events.

Both examples have a common underlying goal: to determine the order between events.

Difference between a centralized and a distributed system about time

There is only a single node in a centralized system and, thus, only a single clock. This means we can maintain the illusion of a single, universal time dimension, which can then determine the order of the various events in the single node of the system.

On the other hand, in a distributed system, each node has its own clock. Each one of those clocks may run at a different rate or granularity, which means they will drift apart from each other. Consequently, in a distributed system, “there is no global clock, which could have been used to order events happening on different nodes of the system”.

Get hands-on with 1400+ tech skills courses.