I tried very hard to use postgres as a queue, it was robust but slow once I started to push from more than a few processes/servers. Moving to zeromq initially and sqs after solved all my perf issues, and was still solid.
I think that’s the way to go. Start with Postgres and only if there are problems, then think about something more specialized. Same for microservices. Start simple and introduce a service when really needed.
I hate it when people already start out with 10 or more different systems/services for a few messages per second.
I think that using the right tool for the job is important and saves a lot of time in the long run. There are expensive headaches that we have to resolve.