$ ls articles | grep * # 42 found
Designing a Flash-Sale Seat Reservation System in AWS (Part 3): Holds, Payments, and the Slow Path
An admitted seat is only half a booking. Part 3 follows it through payment: a 10-minute hold, redirect signals that anyone can fake, one reconciler that makes every release decision, a payment gateway token shared across the fleet, and an SQS FIFO to DynamoDB pipeline that never makes a user wait.
Designing a Flash-Sale Seat Reservation System in AWS (Part 2): Never Sell a Seat Twice
The whole promise of the system depends on one Redis Lua script. Part 2 explains what it checks and in what order, why Lua won over MULTI/WATCH and distributed locks, and the four ways an in-memory counter can still go wrong: double rollbacks, lost replies, crashed requests, and a failover that loses the last writes.
Designing a Flash-Sale Seat Reservation System in AWS (Part 1): The Architecture
20,700 exam seats, millions of people trying at the same time, and an older system that crashed and sold seats twice. Part 1 explains what the traffic looked like, why one atomic Redis script decides who gets a seat instead of a database, how CloudFront handles three out of four requests before they reach a server, and why we added servers before the event instead of using autoscaling.
Timothy Part 26: One Terminal Event and Five Ways to Lose It
A slow model on a CPU-only box made streaming chat turns vanish with zero trace: no assistant message, no error, no evidence the turn ran. Five commits trace one causal chain, defending a single contract in the gateway: a stream ends with exactly one terminal event.
Timothy Part 25: Routes as Roles, Not Names
Routing used to be 7 frozen route names compared by string literal across the gateway and brain. Now a capability column and a role column decouple what a route does from what it is called, routes are user-managed from the settings panel, and the headline feature shipped unreachable through the public API for a few hours because the proxy allowlist and the gateway endpoints live in different files.
Timothy Part 24: An Orange T and a One-Line Install
Two commits landed twenty-five minutes apart on the same morning: one gave Timothy a face by rotating the brand accent from purple to a tabby-orange T mark, and one made it installable without cloning the repo, through a release pipeline, a prebuilt-image compose file, and a magic-link sign-in.
Timothy Part 23: Hand-Built Charts and a Faster CI
The analytics dashboard's charts came from recharts and looked it: flat bars, no hover, no way to isolate a series. I replaced them with a small set of hand-built SVG chart primitives, and while I was in the CI file anyway, fixed the bigger problem of every PR paying for a full test suite it didn't need.
Timothy Part 22: Connector Sensitivity and a Same-Day Bug
Part 18 pinned a session to a local model the moment it touched Gmail specifically. This part generalizes that floor to any connector I flag sensitive in settings, and tells the honest story of shipping it, missing the mid-turn case, and fixing it the same day.