Whenever we send asynchronous messages and modify state in database within same action, we put ourselves at risk. The risk come from the possibility that state will be persisted and message will fail or vice versa. When we send asynchronous messages to external broker like RabbitMQ or SQS this may