Implementing the Raft distributed consensus protocol in Go
A technical guide to implementing the Raft distributed consensus protocol in Go, covering leader election and log replication.
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
A technical guide to implementing the Raft distributed consensus protocol in Go, covering leader election and log replication.
A software developer shares a curated list of high-quality, topic-specific tech subreddits for advancing programming skills.
A developer recommends two essential books for improving professional programming skills: one on browser networking and one on data-intensive applications.
A developer's personal experience and insights on error handling in Zig, focusing on memory allocation failures and the 'try' keyword.
A developer shares lessons learned from live-streaming the creation of a Scheme-like interpreter in Go, covering both technical and streaming setup challenges.
A hobbyist programmer shares their journey and recommended resources for learning to implement compilers and interpreters for various programming languages.
A senior developer advises a frontend developer on transitioning into database development, covering learning paths, career strategies, and internal role transfers.
An article encouraging software developers to write about their learning experiences, even on non-novel topics, to practice writing, provide diverse perspectives, and cement understanding.
Explores high-performance I/O using io_uring and kqueue, comparing them to blocking I/O and providing a practical TCP server example.
A tutorial on building a basic embedded SQL database in Zig using RocksDB, covering lexing, parsing, storage, and execution.
A tutorial on embedding the RocksDB key-value database in a Zig program, covering basic operations like set, get, and list.
Explains how TigerBeetle, a database written in Zig, operates using only static memory allocation for predictability and performance.
A tutorial on building a minimal distributed key-value database using Hashicorp's Raft library in Go, with a single-file example.
Explains the purpose and advantages of embedded key-value databases like RocksDB and FoundationDB, comparing them to traditional SQL and NoSQL systems.
Article discusses SQLite's limited built-in functions, compares it to other databases, and introduces a Go-based standard library extension.
Strategies for efficiently scheduling Docker containers to integration test 14+ databases in GitHub Actions, improving CI performance.
A tutorial on building a basic jq-like JSON parser in Go, focusing on memory-efficient partial parsing and using Go's profiler for optimization.
A developer shares his one-year journey building open-source data tools without funding, including stats, challenges, and future plans.
A tutorial on building a distributed PostgreSQL proof-of-concept using external libraries for SQL parsing, wire protocol, Raft consensus, and storage.
Benchmark comparison of SQLite in Go using the cgo-based mattn/go-sqlite3 package versus the pure-Go modernc.org/sqlite translation.