distributed systems
- What I'd do differently: a retrospective on Foreman
What’s over-engineered, what I cut corners on, and the one thing I’d change if I started over.
Foreman series 7 min read
- Goroutines, channels, and graceful death
Building a bounded worker pool with priority Kafka dispatch and clean SIGTERM shutdown — no work abandoned, no offsets lost.
Foreman series 7 min read
- Exactly-once is a lie, but the outbox pattern gets close
Why you can’t atomically write to Postgres and Kafka, and how the outbox pattern with idempotent consumers gets you exactly-once semantics.
Foreman series 6 min read
- Drawing lines: how I carved Foreman into services
Why three binaries instead of one, Postgres as source of truth, and the transactional outbox seam between Postgres and Kafka.
Foreman series 8 min read
- Foreman: why I built a distributed job queue from scratch
The motivation and stack choices behind building a self-scaling distributed job queue from scratch.
Foreman series 6 min read
- Orchestrating Containers from Scratch
A deep dive into systems engineering: how to build an elastic task engine using Go, Redis, and the Docker SDK, featuring custom autoscaling, scale-to-zero logic, and synchronous log streaming.
4 min read