Years ago I wrote about my trouble with a job queue in Postgres, in which table bloat caused by long-running queries slowed down the workers’ capacity to lock jobs as they hunted across millions of dead tuples trying to find a live one. A job queue in a database can have sharp edges, but I’d understated in that writeup the benefits that came with it. When used well, transactions and background job