Field Signal · Curated Reading
The Engineering
Signal.
High-signal field notes, architecture teardowns, and engineering writing from 50 publications. A focused reading queue for becoming a stronger end-to-end engineer. Updated 20 Aug.
Approaches to tenancy in Postgres
There are many ways to slice a Postgres database for multi-tenant applications. Let's look at the three most common approaches and the trade-offs.
Automation That Screams Joy
I hate shell scripting with a passion. Whenever I join a project, I go on a crusade to rewrite all bash scripts into the project’s main language. I have Java For Everything tattooed on my arm (no). The code I’ve written at TigerBeetle that I am most proud of is this:
Keeping a Postgres queue healthy
Dead tuples from high-churn job queues can silently degrade your Postgres database when vacuum falls behind—especially alongside competing workloads. Traffic Control keeps cleanup on track.
Patterns for Postgres Traffic Control
Practical patterns for leveraging Database traffic Control
Graceful degradation in Postgres
Not all traffic is created equal.When a database is overwhelmed, you want the important queries to keep executing, even if that means shedding lower-priority work.This is a much better outcome than the alternative: a total database outage.
High memory usage in Postgres is good, actually
A high memory percentage in PlanetScale Postgres is not necessarily a problem. Let's compare how memory and CPU usage are different, how not all memory usage is created equal, and which signals actually require attention.
Stripe Projects partnership: Provision PlanetScale Postgres and MySQL databases from the Stripe CLI
PlanetScale is a co-design and launch partner for the Stripe Projects developer preview, allowing you or your coding agents to provision and manage databases and other dev tools directly from the Stripe CLI.
Enhanced tagging in Postgres Query Insights
Introducing query tagging improvements in Postgres Query Insights
A Trillion Transactions
We processed a trillion transactions to test TigerBeetle’s scale.
Index, Count, Offset, Size
Wherein we make progress towards solving one of the most vexing problems of Computer Science — naming things.
One for the Treble, Two for the Time
Time is like a river made up of events which happen, and a violent stream; for as soon as a thing has been seen, it is carried away, and another comes in its place. — Meditations, Book IV
A Tale Of Four Fuzzers
Charles Darnay observed that the gate was held by a mixed guard of soldiers and patriots, the latter far outnumbering the former; and that while ingress into the city for peasants’ carts bringing in supplies, and for similar traffic and traffickers, was easy enough, egress, even for the homeliest pe...
Mathematics of Consensus — Accidental Lecture
Somewhat accidentally, we recorded an impromptu ~2 hour lecture explaining the mathematics behind consensus algorithms, using a Go Pro fisheye—the camera on hand 🤣
The Write Last, Read First Rule
TigerBeetle is a financial transactions database built for correctness. Yet, building a correct system from correct components remains a challenge:
Synadia and TigerBeetle Pledge $512,000 to the Zig Software Foundation
Synadia and TigerBeetle have together pledged $512,000 to the Zig Software Foundation over the next two years in support of the language, leadership, and communities building the future of simpler systems software.
Tracking Time Without Clock
A short note on a couple of code patterns for handling time!
Code Review Can Be Better
Slightly unusual genre today: a negative result about our git-review tool for a different take on code review process, which we decided to shelve, at least for the time being.
Fuzzer Blind Spots (Meet Jepsen!)
Systems inevitably have components which are easier or harder to test.
Asserting Implications
A short one today!
Swarm Testing Data Structures
We discovered a cute little pattern the other day when refactoring TigerBeetle’s intrusive queue — using Zig’s comptime reflection for exhaustively testing data structure’s public API. Isn’t it cool when your property test fails when you add a new API, because “public API is tested” is one of the pr...
Why We Designed TigerBeetle's Docs from Scratch
We recently rebuilt TigerBeetle’s docs site from scratch. We wanted to apply TigerStyle and first principles thinking, not only to our database but also to our docs. To give users the fastest possible experience, given how much time they spend reading, and to do this without the dependency of Docusa...
A Descent Into the Vörtex
We’re huge fans of Deterministic Simulation Testing (DST) at TigerBeetle, which enables us to perfectly reproduce complex failures of a distributed system on a single laptop. But that’s not today’s story! We’ve added an intentionally non-deterministic testing harness, the Vörtex!