BlogRSS →

Writing

Notes and longer pieces on ML systems, distributed systems, and infrastructure.

Machine Learning

All 5

Systems

All 16
2026-05-02The Bulkhead Pattern: Isolating Failures Before They SpreadHow the bulkhead pattern isolates failures in distributed systems — partition thread pools, connection pools, and resources so one degraded dependency cannot sink the whole service.2026-05-02CRDTs: Conflict-Free Replicated Data TypesCRDTs eliminate merge conflicts by design — commutative, associative, idempotent data structures that converge to the same state regardless of operation order. G-Counters, OR-Sets, and LWW registers explained.2026-05-02Multi-Paxos: From Single Decree to a Replicated LogMulti-Paxos extends single-decree Paxos into a replicated log by electing a stable leader, skipping Phase 1 for subsequent entries, and batching proposals for throughput.2026-05-02Raft Log Compaction: Keeping the Log from Growing ForeverRaft logs grow forever if left unchecked. Log compaction via snapshots lets nodes discard old entries, transfer state to slow followers, and recover quickly after a restart.2026-05-02The Saga Outbox Pattern: Reliable Event Delivery Without Two-Phase CommitThe outbox pattern solves the dual-write problem in event-driven systems: persist events to a local outbox table in the same transaction as your domain change, then relay them reliably.2026-05-02How Spanner Does Distributed Transactions Without Classic 2PCGoogle Spanner achieves globally consistent distributed transactions using TrueTime — bounded clock uncertainty instead of classic 2PC, enabling external consistency at planetary scale.