| ▲ | BowBun 3 hours ago | |||||||||||||||||||||||||||||||
Traditional DBs are a poor fit for high-throughput job systems in my experience. The transactions alone around fetching/updating jobs is non-trivial and can dwarf regular data activity in your system. Especially for monoliths which Python and Ruby apps by and large still are. Personally I've migrated 3 apps _from_ DB-backed job queues _to_ Redis/other-backed systems with great success. | ||||||||||||||||||||||||||||||||
| ▲ | sorentwo 2 hours ago | parent | next [-] | |||||||||||||||||||||||||||||||
Transactions around fetching/updating aren't trivial, that's true. However, the work that you're doing _is_ regular activity because it's part of your application logic. That's data about the state of your overall system and it is extremely helpful for it to stay with the app (not to mention how nice it makes testing). Regarding overall throughput, we've written about running one million jobs a minute [1] on a single queue, and there are numerous companies running hundreds of millions of jobs a day with oban/postgres. [1]: https://oban.pro/articles/one-million-jobs-a-minute-with-oba... | ||||||||||||||||||||||||||||||||
| ▲ | brightball 3 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||
The way that Oban for Elixir and GoodJob for Ruby leverage PostgreSQL allows for very high throughput. It's not something that easily ports to other DBs. | ||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||