They offer reliability through guaranteed delivery, persistence, and dead letter queues, so developers know they aren't sending workloads into a black hole.
I disagree with this reason to use queues. If this is the only reason for using SQS or RabbitMQ or similar, perhaps the application is over-engineered.
If you want reliability, and that alone, use a transaction-based system.
Comments
I disagree with this reason to use queues. If this is the only reason for using SQS or RabbitMQ or similar, perhaps the application is over-engineered.
If you want reliability, and that alone, use a transaction-based system.
Could you elaborate on how a transaction-based system enables durable execution?
How are you going to do that over network boundaries? Especially the ones you might have less control over.