Welcome to Distributed Bytes!

I share interesting articles, videos, papers and more about distributed systems, formal methods and computer science.

Made with ❤ by Federico Ponzi

Recent Posts

Git at any scale · Cursor

Hosting Git repositories at scale is a nightmare. When Linus Torvalds designed the first version of the information manager from hell (that's actually the tagline for Git, look it up), he had a very specific use case in mind: his own. He wanted to replace BitKeeper, the distributed version control system that was being used to develop the Linux Kernel. Of course, the replacement had to be distributed too. The Kernel is an unusual software project; it is extremely decentralized, with many different maintainers for its many different subsystems. A distributed version control system is a natural fit for this workflow. Twenty years later, Git has become an industry standard, but the truth is that its distributed nature is more of a hindrance than an advantage. The average open-source software project doesn't operate with a decentralized workflow. The average company definitely doesn't. They use the many advantages of the distributed model (such as being able to work offline, delay pushes, etc) but they very much rely on a centralized host. And hosting a Git repository, it turns out, is an incredibly hard thing to do.

Git at any scale · Cursor

On building scalable control planes | All Things Distributed

Zak van der Merwe has spent his entire career at AWS building control planes. First for EC2 and now for DSQL. On the surface, the control plane looks quite boring: it records what should exist and reconciles that with what actually does. Nobody leaves school dreaming of building one, but Zak will be the first to tell you that if you like solving hard problems in distributed systems, there are few better places to be. It’s where many of those hard problems converge, and where the decisions you make determine whether a service survives its own growth.

On building scalable control planes | All Things Distributed

Making 768 servers look like 1 — PlanetScale

How to make 768 distinct Postgres servers look like 1 to your applications.

Making 768 servers look like 1 — PlanetScale

Client-Side Load Balancing at a Million Requests Per Second

How we built an in-process client-side load balancer for a million requests per second of internal fan-out traffic, what we layered on top (N-ring fade-in, occupancy-based bounded load, and...

Client-Side Load Balancing at a Million Requests Per Second

Aurora DSQL: Scalable, Multi-Region OLTP - Marc's Blog

Aurora DSQL is a serverless SQL database designed for cloud-scale transaction processing with multi-region active-active capabilities.

Aurora DSQL: Scalable, Multi-Region OLTP - Marc's Blog

How TLA+ Caught a Silent Data Divergence Bug in Postgres’s pg_rewind | Blog | Multigres

TLA+ modeling caught a silent data-loss bug in Postgres pg_rewind during Multigres HA work—what we found and how we fixed it.

How TLA+ Caught a Silent Data Divergence Bug in Postgres’s pg_rewind | Blog | Multigres

Queues Don't Fix Overload

People misuse queues all the time. The most egregious case being to fix issues with slow apps, and consequently, with overload. But to say why, I'll need to take bits of talks and texts I have around the place, and content that I have written in more details about in Erlang in Anger.

Queues Don't Fix Overload

Simple and Correct Snapshot Isolation

Snapshot isolation (SI) is a popular approach to concurrency control in databases systems. It avoids many forms of anomalies, yet provides a high degree of concurrency, especially for read-heavy workloads.

Simple and Correct Snapshot Isolation

Notes on Paxos

These are my notes after learning the Paxos algorithm. The primary goal here is to sharpen my own understanding of the algorithm, but maybe someone will find this explanation of Paxos useful! This post assumes fluency with mathematical notation.

Notes on Paxos

Hypothesis, Antithesis, synthesis | Antithesis Blog

Introducing Hegel, our new family of property-based testing libraries.

Hypothesis, Antithesis, synthesis | Antithesis Blog