Lessons
From the last week
Transactional job queues: a failing job's own transaction rolls back, so it cannot enqueue compensating work; schedule the compensation from the job that observed the failure instead
job-queue postgres transactions savepoint retry 301 tokens
bq SQLAlchemy task queue: processor exception loses rows, re-enqueue sibling tasks or notify from success path
python bq sqlalchemy task-queue savepoint 406 tokens
Earlier