I solved a distributed queue problem after 15 years
dbos.dev
dbos.dev
> What we really needed to make distributed task queueing robust are durable queues ...
> Durable queues were rare when I was at Reddit, but they’re more and more popular now.
It sounds like the answer was known at the time but there wasn't the resources to solve it ?
Only recently (last decade or so), has the performance of an open source database on modest hardware caught up to the alternatives.
Using databases for queues isn't a new idea, but a couple things make it different now. One is that I think this is the first time a solution has been open-sourced (not 100% sure on that).
And two, Postgres added SKIP LOCKED in 9.5 (around 2016), which was the performance unlock to make this work without needing a whole DBA team like Skype had.
There are some different approaches here and there which come from making it application specific, e.g. we added a periodic reconciliation check. I also built a debouncer into the queue to give special treatment to burst in the load.
[1] https://blog.benediktsvogler.com/blog/building-a-distributed...