Introduction
Sometimes apps need to talk to each other without being connected all the time. Sending and receiving messages lets apps pass information safely and reliably, even if one app is busy or offline.
When you want to send a task to another app to do later without waiting.
When you need to keep messages safe until the receiver is ready.
When you want to connect different parts of your system without them crashing each other.
When you want to handle many messages quickly and in order.
When you want to retry sending messages if something goes wrong.