Goroutines, channels, and graceful death
Building a bounded worker pool with priority Kafka dispatch and clean SIGTERM shutdown — no work abandoned, no offsets lost.
Building a bounded worker pool with priority Kafka dispatch and clean SIGTERM shutdown — no work abandoned, no offsets lost.
Why you can’t atomically write to Postgres and Kafka, and how the outbox pattern with idempotent consumers gets you exactly-once semantics.
Why three binaries instead of one, Postgres as source of truth, and the transactional outbox seam between Postgres and Kafka.
The motivation and stack choices behind building a self-scaling distributed job queue from scratch.