Asynchonous tasks like sending emails and processing credit card payments. Example, user signups, and your flow is to send a welcome email. You don't want the signup response to wait on sending the email for example. So you drop it on a queue to be processed "later".
That's a good counter example, but doesn't address the other advantages of third party solutions like message durability, atomicity, and guaranteed completion. If the email only ever exists in the memory of the executing process, it can be easily lost during server restart for example.
Asynchonous tasks like sending emails and processing credit card payments. Example, user signups, and your flow is to send a welcome email. You don't want the signup response to wait on sending the email for example. So you drop it on a queue to be processed "later".