•   Home
  •   Github
  •   LinkedIn
  •   Subscribe

Thinking Out Loud

Thoughts on Software Design & Development
Tags: 
system-design, distributed-systems, et al.

The Illusion of Time in Distributed Systems, Part II: How Systems Keep Order Without Real Time

Oct 07, 2023 | distributed-systems, system-design

In the last post, we saw how physical clocks betray us! They drift, skew, jump, and bend, creating logs where effects appear before causes and refunds happen before payments. So what do we do when time itself can’t be trusted? We stop measuring time, and start measuring causality. Second…

The Illusion of Time in Distributed Systems, Part I: Subtle Lie That Ticks Beneath Our Servers

Oct 03, 2023 | distributed-systems, system-design

Distributed systems often behave as if time were universal, objective truth as if two machines agreeing on a timestamp meant they also agreed on the order of events. But clocks in computers are not laws of nature! They drift with time, freeze under load, stumble over leap seconds, and lags…

Consistency Models Explained by Their Anomalies

Sep 16, 2023 | distributed-systems, system-design, storage, databases

Consistency models are often introduced as abstract rules: causal, sequential, linearizable, and so on. But what they really do is draw boundaries around the kinds of mistakes a distributed system can make. If consistency is about agreement, anomalies are the cracks where that agreement breaks. Each model exists precisely to…

From Ordering Guarantees to Consistency Models

Aug 31, 2023 | distributed-systems, system-design, storage, databases

Distributed systems differ not only in what they store but in how they order events. Every read, write, and replica update follows an underlying ordering guarantee, a rule defining how operations appear across replicas. As these guarantees strengthen, systems exchange availability and latency for stronger forms of consistency. Every distributed…

Everyone Agrees, Yet No One’s in Sync: The Story of Total Order Broadcast and Linearizability

Jul 06, 2023 | distributed-systems, system-design

When working with distributed systems, it’s easy to confuse Total Order Broadcast (TOB) and Linearizability. After all, both seem to talk about order. However each serve different purposes and operate at different layers of a system’s design. Let's unpack! If every replica delivers the same messages…

Newer Posts Page 3 of 10 Older Posts
Theme Attila by zutrinken Published with Ghost