The Reliability Envelope I Didn't Finish
An honest accounting of what this job queue guarantees, what it doesn't, and the config settings that do nothing at all.
6 posts
An honest accounting of what this job queue guarantees, what it doesn't, and the config settings that do nothing at all.
A status column records what a job was doing. It cannot record whether anyone is still doing it.
Deadlines protect the worker, not the job. Once blocking code is involved, the difference stops being academic.
Retrying is easy. Deciding when to retry, and making sure everyone doesn't decide the same thing, is the actual work.
Rooms live in memory and get thrown away. The client is the persistence layer, which changes what reconnecting means.
Every broadcast loop contains an assumption that send() works. Backpressure is what you build when it doesn't.