Notes from the build
Occasional write-ups on backend systems, caching, distributed workflows, and the engineering behind AI products, war stories included.
-
Why I didn't write our own sync protocol
Our browser panel renders from a local replica, so every Postgres write has to travel to it. The from-scratch design had rev counters, tombstones and an epoch column. Why we bought the sync layer instead, why Zero over ElectricSQL, and the two places buying it still bit us.
- postgres
- cdc
- sync
- zero
- architecture
- decisions
-
Why we moved our rendering service off a box and onto Modal
Our PowerPoint and PDF exports render in real headless Chrome, and a single always-on box was the wrong shape for bursty, isolated export traffic. Why we moved to Modal, why not Lambda, and what the serverless rearchitecture changed.
- scaling
- serverless
- modal
- playwright
- architecture
- war-story
-
How I cached a theme list so well nobody could see new themes
A caching war story: how a one-line max-age header hid every new theme for a month, why the fix was worse than the bug, and how ETags and conditional revalidation actually solve it.
- http-caching
- etag
- debugging
- war-story