Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> we wanted to prove it's also the best system to deploy at scale in production

> The queue is implemented in Postgresql itself

Tell me you don't understand system design without telling me you don't understand system design



"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

If you know more than others, that's great, but in that case please share some of what you know—without putdowns or snark—so the rest of us can learn.

https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor...

https://news.ycombinator.com/newsguidelines.html


I would argue that implementing your internal queues inside your DB is sound system design. Your backups and system restores are as simple as it gets. You should have a specific reason to do anything more complicated. And no, "deploy at scale" is puffery, not a good reason.


Any known issue on implementing a queue with Postgres? Do you at least know it has a pretty good pub/sub mechanism?


Postgres is having a moment with excellent queueing libraries right now, not sure what GP is referring to. We use Oban[1] at Mux for some workloads and love it, and a former colleague just built something similar in Go that was on the front page yesterday (River)[2].

[1] https://github.com/sorentwo/oban

[2] https://github.com/riverqueue/river


Connection limits, locking issues, concurrency issues, multiple consumer/producer issues, dead-letter, record expiration, performance limits, scalability limits, lack of gateway, lack of interoperable standards, tightly-coupled applications, general architectural limits.

Can you "work around" all that? Sure, it's technically possible (well actually it's not possible to solve all of the above, but most of it). Just like it's also possible to take a mini-van and convert it into a hot rod, so it can pick up groceries after it's entered in a drag race. It will just cost you a lot of extra time and money, and do both jobs poorly.

It's NIH syndrome plain and simple. Hipster nerds who want to invent something for fun, rather than using something off the shelf. People decrying "complexity", who then poorly implement complexity themselves, in the form of functionality shoved into a system not built for it. Software architecture by HN meme.


By "queue" they mean here a table with the columns (job_id, job_status, update_time).

You could store that in a text file, there aren't really any serious requirements.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: