Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Memory is slow, Disk is fast - Part 3
Jared Hulbert benchmarks an on-disk sorted-set structure (DiskArray on 8 NVMe drives, 264 MiB RAM) against an in-RAM AVL tree at 2 billion keys and finds the disk-based design faster at search, rank, insert and delete, arguing Big O misleads and that memory must be treated like a parallel, pipelined block device.
19 min · 4,345 words
Twelve years of distributed SQLite
rqlite creator Philip O'Toole recounts the history of distributed SQLite from rqlite's 2014 launch (Raft + SQLite) through dqlite, Litestream, LiteFS, cr-sqlite, libSQL/Turso, SQLite Cloud and Cloudflare D1, arguing the design space has three corners (consensus, streaming, merge) and that the money went to the platforms.
5 min · 1,129 words
Animations for System Builders: Metastability and Lost Writes
Marc Brooker shows how LLM-built animations backed by real test traces help build intuition for distributed-systems failures, including how a Raft cluster can lose writes when one node's storage lies, and metastable failure.
2 min · 509 words
Murat Demirbas's notes from day 1 of HPTS 2026 at Asilomar, including Ion Stoica's keynote 'Reality is the Final Verifier' on gaps in agentic software engineering, plus talks on storage, metastable failures and Little's Law, CXL memory, LLM training resilience on TPUs and inference.
13 min · 2,948 words
Postgres recovery_prefetch Considered Harmful and Causing Outages
Jeremy Schneider describes a field investigation showing that Postgres's recovery_prefetch setting can quietly cause standby replay lag and production outages, tracing it back to a concern raised on the hackers list years ago and explaining what he found.
5 min · 1,253 words
UUIDv7 doesn't have the properties you think it does
Robert Alexander argues that RFC-compliant UUIDv7 implementations don't strictly guarantee monotonic ordering, meaningful timestamps, or unguessability, and that only uniqueness is reliable, with questions to ask before picking a generator.
7 min · 1,558 words
Postgres DELETE Can Actually Scale
DBOS explains how Postgres actually deletes rows and how it made workflow retention deletes scale: batched deletes of the oldest workflows, dropping foreign keys so tables are cleaned in phases, debugging a 20-minute index lookup, and why it chose DELETE over dropping partitions.
7 min · 1,532 words
What changes when your search index lives on S3?
Infino explains how putting a full-text search index on object storage changes the cost and latency model: every random read is a billed GET taking tens of milliseconds, and how superfiles, manifests and careful layout keep agent queries fast without packing the working set on local disks.
9 min · 2,019 words
Everyone is doing Git on S3 wrong
Enroute explains why Git is hard to put on object storage, where write-ahead-log designs fall short, and how its Rust, Raft and S3-backed Git server, built on modern database principles, reaches 7,600+ concurrent pushes per second on a single repository, with benchmarks and an open-source 0.3.0 release.
17 min · 3,860 words
Building a Linearizable Log on READ COMMITTED Isolation
Materialize describes how a metastable incident under PostgreSQL SERIALIZABLE led them to build a linearizable metadata log on READ COMMITTED isolation, achieving 3x write throughput, backed by a Lean 4 proof.
20 min · 4,657 words
Five months treating bugs like patients and coding agents like a medical team
Cockroach Labs' Adam Storm describes the "hospital", an agent system that triages GitHub issues and assigns specialist coding agents. It added IBM Db2 support to the MOLT migration tool in under two days for a $4,172 token bill, versus nine months for Oracle in 2024, and the post covers what broke, human review and training junior engineers.
19 min · 4,382 words
How Firestore Matches Realtime Queries
Tyler Rockwood explains how Cloud Firestore matches and fans out realtime listeners efficiently as documents change—covering query indexing, target matching, and fanout tradeoffs.
5 min · 1,243 words
We ported the original Doom to SQL
CedarDB engineers describe porting the original Doom so the game’s world and logic run as SQL queries—showing what a modern analytical database can do with a playful, technical demo.
22 min · 5,155 words
turbopuffer is pushing the frontier of search. To do that, we have to fundamentally redesign our storage architecture so the vector index is no longer primary.
6 min · 1,334 words
PlanetScale Released Text Search and We Have a Lot to Say (Part I)
Two BM25 optimizations and benchmark configuration changes inspired by PlanetScale's TIN benchmarks make ParadeDB's text search faster without changing its document identifiers.
14 min · 3,188 words
Inline vs. Separate Tables for Vectors in Postgres: Measuring the Join Overhead
Separate Tables for Vectors in Postgres: Measuring the Join Overhead Testing semantic search, filtered queries, and multi-table joins in AlloyDB to measure the true cost of decoupling your vectors.
10 min · 2,296 words
When to choose x86-64 vs aarch64
Not all cloud vCPUs are created equal. When you create a PlanetScale Postgres or Neki database, you have to choose between `aarch64` (ARM) and `x86-64`. Two clusters on different architectures can have the same vCPU count and RAM, yet perform very differently. It's worth understanding the implications, since you can't easily switch the CPU architecture on your cluster later. x86 grew up on the desktop, prioritizing backward compatibility and performance. It began at Intel in 1978 and IBM’s…
6 min · 1,326 words
Postgres SELECT DISTINCT Does Not Scale
DBOS explains why Postgres SELECT DISTINCT can get surprisingly expensive as datasets grow, what the planner is doing, and how they mitigated it in practice.
5 min · 1,068 words
700 MB/s of Kafka throughput, on Postgres
Profiling Kafgres (Kafka-compatible broker inside Postgres) from ~113 MB/s to ~700 MB/s via cached SPI plans, relaxed commits, separate topic disks, and WaitEventSet socket readiness.
5 min · 1,062 words
Why didn't anybody tell me about hash slots
A delivery-matching engineer discovers Redis Cluster hash slots the hard way, and walks through how slot-aware keys change caching, sharding, and multi-key operations in production.
8 min · 1,937 words