How Distributed Systems Decide What Is True
How quorums, fencing tokens, and clear failure assumptions keep distributed systems safe when nodes pause, lose authority, or disagree.
Sep 23, 2026Thoughts, ideas, and things I find interesting.
How quorums, fencing tokens, and clear failure assumptions keep distributed systems safe when nodes pause, lose authority, or disagree.
Sep 23, 2026Why synchronized clocks still misorder events, how TrueTime exposes uncertainty, and why process pauses can turn valid leases into unsafe writes.
Sep 22, 2026Why silence cannot prove failure, how timeouts and queues mislead, and why predictable network latency conflicts with efficient resource use.
Sep 15, 2026A practical comparison of serial execution, two-phase locking, and SSI, including predicate locks, phantoms, contention, and transaction retries.
Sep 14, 2026How lost updates, write skew, and phantoms can break business rules, and when atomic updates, constraints, locks, or serializable transactions fit best.
Sep 10, 2026Transactions protect related changes from failures and concurrency bugs, covering ACID, isolation levels, MVCC, and safe retries.
Sep 9, 2026How partition keys, indexes, rebalancing, and routing shape a scalable distributed database.
Sep 8, 2026A practical guide to Python asyncio: tasks, concurrency, timeouts, cancellation, blocking work, and production-safe choices.
Sep 5, 2026How leaderless databases use quorums, repair stale replicas, and handle conflicting writes without a primary
Sep 2, 2026How multi-leader replication enables local writes, why conflicts happen, and how to design safe resolution rules
Aug 29, 2026How leader-follower replication handles writes, failures, replica lag, and read consistency in production
Aug 29, 2026How databases, APIs, and message brokers keep data compatible through real-world deployments
Aug 27, 2026How data formats and schemas let old and new services safely evolve together
Aug 20, 2026How column stores handle writes, and when materialized views and OLAP cubes make repeated analytics much faster
Aug 17, 2026My practical notes on column storage, bitmap indexes, Cassandra, and vectorized processing
Aug 12, 2026Why column stores make analytical queries faster through selective reads, compression, bitmap indexes, and CPU-friendly scans
Aug 12, 2026Why OLTP and OLAP need different database designs, and how ETL, warehouses, and star schemas support analytics
Aug 11, 2026How secondary, spatial, full-text, and in-memory indexes make real database queries fast, and what each trade-off costs
Aug 6, 2026How Cassandra uses partitioning, replication, compaction, and separate analytics pipelines to make LSM-trees practical at banking scale
Aug 5, 2026A practical comparison of B-trees and LSM-trees: writes, compaction, latency, and transaction trade-offs
Aug 5, 2026A practical mental model for database B-trees: pages, heap rows, MVCC, WAL, page splits, and how they compare with LSM-trees
Aug 5, 2026How B-trees use fixed-size pages, page splits, WALs, and latches to keep database indexes fast and recoverable
Aug 5, 2026How SSTables, memtables, compaction, and Bloom filters make LSM-trees fast for writes and range queries
Aug 3, 2026How append-only logs, indexes, compaction, and storage-engine trade-offs shape database performance
Jul 30, 2026