Transactions are a protocol
Explores transactions as a protocol that can be added to any storage system, not an intrinsic feature, with examples from Delta Lake, Epoxy, and Two-Phase Commit.
Phil Eaton is a staff engineer working on Postgres and software internals, sharing insights on databases, systems engineering, and life deep in the software stack.
155 articles from this blog
Explores transactions as a protocol that can be added to any storage system, not an intrinsic feature, with examples from Delta Lake, Epoxy, and Two-Phase Commit.
Explores common disk I/O failure scenarios in transactional applications and how real-world systems handle data integrity issues.
An interview with engineer Phil Eaton on the motivations, benefits, and surprising impacts of maintaining a consistent technical blog.
A technical guide demonstrating how to perform a minimal-downtime major version upgrade of a PostgreSQL cluster using EDB Postgres Distributed.
A developer shares their 10-year journey from web development to specializing in database engineering, focusing on Postgres and distributed systems.
A guide on improving blog post clarity by identifying and editing confusing sentences, focusing on making technical writing understandable.
Argues that minimal standard libraries in languages like Rust and JavaScript lead to an explosion of transitive dependencies, harming maintainability.
A guide to embedding Python within a Rust application to create a custom test runner, allowing Python scripts to call Rust functions.
A technical guide to setting up and understanding logical replication between two PostgreSQL databases, including setup steps and limitations.
A developer reflects on reaching 1 million blog page views, discussing their blogging journey, static site tooling, and evolution of technical content.
Explores Postgres's MemoryContexts by building an HTTP server inside a Postgres extension to understand memory allocation.
Advises unemployed tech professionals to build projects and blog publicly to showcase skills and subtly signal job availability on social media.
A guide to using the Porcupine library to check for linearizability in distributed systems like registers and key-value stores, implemented in Go.
Phil Eaton explains the core concepts and intuitions behind distributed consensus systems in a technical talk.
A guide to building a simple, serverless ACID database inspired by Delta Lake using Go, focusing on atomic PutIfAbsent for concurrency control.
Explains Deterministic Simulation Testing (DST) for debugging distributed systems by controlling randomness and time in a single-threaded, reproducible test environment.
Explains the limitations of physical and logical replication in Postgres and introduces EDB Postgres Distributed as a solution for production-grade needs.
Analysis of the resurgence of high-quality, technical systems programming meetups and guidance for starting your own.
Explores database durability without write-ahead logs, contrasting in-memory and disk-based approaches to build intuition for WAL design.
Explains the limitations of Large Language Models (LLMs) and introduces Retrieval Augmented Generation (RAG) as a solution for incorporating proprietary data.