#distributed-systems

ls ./tags/distributed-systems
2026-10-27~13 min
Notes about cell-based architecture

Cell-based architecture as the middle ground between one dense cluster and one cluster per customer, and why moving data is the core capability.

2026-08-13~6 min
Explaining FoundationDB's Architecture Through Compartmentalization

Compartmentalization explains FoundationDB's architecture: find the responsibilities that got coupled together, split them, and scale only the parts that can scale.

2026-06-09~6 min
Designing Fakes That Prove Correctness

You fake the handful of methods your code actually calls, prove the fake stays honest, and then make it fail the way production does.

2026-03-26~8 min
Why Fakes Beat Mocks and Testcontainers

Trait-based fakes test partial failures that mocks and Testcontainers fundamentally cannot simulate. They are also the on-ramp to simulation-driven development.

2026-02-25~8 min
Building Index-Backed Query Plans in DataFusion

What I learned about manually constructing physical query plans for secondary index queries, and the library that came out of it.

2026-02-05~8 min
Simulating Leader Election on top of FoundationDB

Can LLM-generated code be trusted for distributed systems? Only if you have the right feedback loop.

2026-01-30~11 min
FoundationDB's Transaction Model for Layer Engineers

How optimistic concurrency control works in FoundationDB, and how to design data structures that stop fighting it

2025-12-09~13 min
Designing Rust FDB Workloads That Actually Find Bugs

Patterns and principles for writing Rust simulation workloads that catch bugs before production does.

2025-11-12~9 min
Diving into Kubernetes' Watch Cache

Understanding how Kubernetes apiserver caches etcd, the 3-second timeout, and K8s 1.34 consistent read feature

2025-10-30~22 min
Diving into FoundationDB's Simulation Framework

How FoundationDB achieves legendary reliability through deterministic simulation, interface swapping, and one trillion CPU-hours of testing

2025-09-24~14 min
A Practical Guide to Application Metrics: Where to Put Your Instrumentation

A comprehensive guide on where and how to instrument metrics in your applications, covering everything from API endpoints to background jobs

2025-08-18~4 min
Shipped vs. Operated, or How Many Bash Scripts Does It Take?

The difference between shipped and operated software is the difference between something you can run and forget, and something that demands ongoing, hands-on care. Choosing the former protects your team’s focus and sanity.

2025-08-11~3 min
Two Podcast Episodes on Topics Developers Rarely Talk About

Two podcast episodes—one from Oxide and one from Antithesis—on debugging at the limits and building correctness into systems from day one.

2025-06-03~7 min
Bypassing FoundationDB's Transaction Limits with Record Layer Continuations

A technical deep-dive into FoundationDB Record Layer continuations, explaining how they enable long-running operations by segmenting work across multiple FDB transactions, effectively bypassing the inherent 5-second and 10MB limits.

2025-04-18~9 min
What if we embraced simulation-driven development?

How deterministic simulation testing can help us build more reliable distributed systems and bridge the gap between development and production environments.

2025-04-11~6 min
So, You Want to Learn More About Deterministic Simulation Testing?

A curated collection of resources about deterministic simulation testing for distributed systems.

2025-03-27~2 min
Key design tip: reverse number scanning in ordered key-value stores

A key design trick for ordered key-value stores like HBase, FoundationDB, and RocksDB: reverse a number by subtracting it from its max value so a forward scan finds the highest one first.

2025-03-07~3 min
Debugging FoundationDB's Data Distributor

A deep dive into the internals of FoundationDB's Data Distributor and how it manages shard placement and team priorities.

2025-02-11~4 min
Ensuring Safety in FoundationDB's Rust Crate

Strategies and techniques for enhancing safety in the FoundationDB Rust crate

2024-03-12~4 min
True idempotent transactions with FoundationDB 7.3

Learn how to avoid FDB's biggest caveats by using a new feature called automatic idempotency in FoundationDB

2022-01-17~11 min
Best resources to learn about data and distributed systems

Learning distributed systems is tough. You need to go through a lot of academic papers, concepts, code review, before being able to have a global pictures. Thankfully, there is a lot of resources out there that can help you. Here's the best resources I used to learn distributed systems

2021-02-21~5 min
Crafting row keys in FoundationDB

An overview of all the helpers to generate row keys with FoundationDB

2021-01-11~9 min
Notes about ETCD

List of ressources gleaned about ETCD

2020-09-23~3 min
Announcing Record-Store, a new (experimental) place for your data

Opensourcing Record-Store

2020-09-18~4 min
Diving into ETCD's linearizable reads

A code-level dive into how etcd achieves linearizable reads with the ReadIndex protocol on top of Raft, including how it enables safe follower reads.

2020-07-30~10 min
Notes about Raft's paper

List of ressources gleaned about Raft

2020-03-24~11 min
Announcing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pulsar

We are excited to announce that StreamNative and OVHcloud are open-sourcing “Kafka on Pulsar” (KoP). KoP brings the native Apache Kafka protocol support to Apache Pulsar by introducing a Kafka protocol handler on Pulsar brokers

2020-02-14~7 min
Contributing to Apache HBase: custom data balancing

In today’s blogpost, we’re going to take a look at our upstream contribution to Apache HBase’s stochastic load balancer, based on our experience of running HBase clusters to support OVHcloud’s monitoring.

2020-01-30~14 min
Notes about FoundationDB

List of ressources gleaned about FoundationDB

2019-12-08~6 min
Diving into Kafka's Protocol

A walkthrough of Kafka's wire protocol, from the API_VERSIONS handshake through producing and the consumer group coordination protocol, with a sequence diagram for each exchange.

2019-11-17~4 min
Diving into Hbase's MemStore

A code-level dive into HBase's MemStore, from the ConcurrentSkipListMap backing HBase 1.x to the in-memory compactions Accordion introduced in HBase 2.0.

2019-08-04~8 min
What can be gleaned about GFS successor codenamed Colossus?

Piecing together, from scattered public talks and papers, how Google evolved GFS into Colossus, and why a Kubernetes-native distributed file system is still missing.

2019-02-03~6 min
Handling OVH's alerts with Apache Flink

How OVH built Beacon, an Apache Flink pipeline handling alert deduplication, escalation, and notification on top of its Metrics Data Platform, and what running Flink in production taught us.

2019-01-27~4 min
Hbase Data Model

An overview of HBase's data model, row keys, column families and qualifiers, and why key design determines whether you get good performance or a hotspotted region.

2016-05-13~7 min
Event-driven architecture 101

An introduction to event-driven architecture: queue messaging systems applying the Unix pipe philosophy to microservices, and the simplicity, modularity, and scalability it buys you.