Introduction
When you send messages between services, you want to make sure they are not lost and are processed only once. Message retention keeps messages available for a time, and acknowledgment tells the system you received and handled a message.
When you want to keep messages available for a short time in case the receiver is slow or temporarily down
When you want to confirm that a message was processed so it is not sent again
When you want to control how long unacknowledged messages stay in the system before being redelivered
When you want to avoid losing messages during network or service interruptions
When you want to manage message flow to prevent overload on your processing service