News for hackers. Stuff that matters.
Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by cldellow on Tuesday April 11, 2023 @12:51PM (#35527768)
They claim "thousands of jobs every day", so the volume sounds very manageable. In a past job, I used postgres to handle millions of jobs/day without too much hassle.

They also say that some jobs take hours and that they use 'SELECT ... FOR UPDATE' row locks for the duration of the job being processed. That strongly implies a small volume to me, as you'd otherwise need many active connections (which are expensive in Postgres!) or some co-ordinator process that handles the locking for multiple rows using a single connection (but it sounds like their workers have direct connections).

Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by riogordo2go on Tuesday April 11, 2023 @01:40PM (#35528463)
I think the 'select for update' query is used by a worker to fetch jobs ready for pickup, then update the status to something like 'processing' and the lock is released. The article doesn't mention holding the lock for the entire duration of the job.
Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by sgarman on Tuesday April 11, 2023 @02:08PM (#35528862)
I wish they actually wrote about their exact implementation. Article is kinda light on any content without that. I suspect you are right, I have implemented this kinda thing in a similar way.
Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by ketchupdebugger on Tuesday April 11, 2023 @03:39PM (#35530359)
what happens if the task cannot be completed? or a worker goes down? Is there a retry mechanism? maintaining a retry mechanism might be a huge hassle.
Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by marcosdumay on Tuesday April 11, 2023 @07:38PM (#35533209)
For something this size, my guess is it creates an alert and somebody looks at the problem.
Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by riogordo2go on Wednesday April 12, 2023 @03:19AM (#35536061)
It's a bit of work but allows for fine grained retry logic. Some jobs should not be retried but escalated, others might need a retry in one hour, others can be retried at a lower priority. I prefer a flatter stack and total control over the queue. That being said, I have RabbitMQ running in a production project that I haven't touched in years, it's rock solid and I'm pretty sure these guys had it misconfigured.
Re:SQL Maxis: Why We Ditched RabbitMQ and Replaced It with a... by bpodgursky on Tuesday April 11, 2023 @01:24PM (#35528223)
Sharding among workers by ID isn't hard.