Skip to content
all episodes
Code of Architecture · episode 25

Distributed Systems — Episode 5

1:22:04

Episode participants

  • Sergey Goppikov

    guest

  • Daniil Kuleshov

    guest

Conversation

What we discussed on the recording

The fifth episode studies coordination without a shared clock or memory. Physical clocks drift; UTC provides a reference, but network delay limits precision. Internal synchronization aligns processes with one another, while external synchronization aligns them with a reference without moving time backward.

Logical clocks replace exact time with a happens-before relation. A Lamport clock preserves causal order but cannot identify independent events; vector clocks add one counter per process and reveal concurrency. Mutual exclusion is compared through a coordinator, distributed agreement, and a token ring with different message and failure costs.

Leader election begins with bully and ring algorithms and then moves to Raft, where logs, terms, and a majority connect election to safe replication. Proof of Work and Proof of Stake represent another election class: the right to propose state follows computational cost or economic stake, producing different incentives and risks.

Peer sampling maintains a refreshed neighbor set instead of a full network list. Distributed matching in publish–subscribe connects events to subscriptions without one bottleneck. The finale separates physical positioning through GPS from logical proximity measured by latency, hops, or another overlay metric.

Book series
Distributed Systems
Maarten van Steen, Andrew S. Tanenbaum
Book playlist