A messaging system transfers messages/data from one system to another. It uses a message queue to achieve this functionality. Queues are used to decouple the source and the destination and enable asynchronous communication. When a source sends a message to the queue, it is stored in the queue until a consumer reads the message. After a destination or consumer has read the message, it is no longer stored in the queue. If some other destination server wants to consume the same message, it cannot do so because the message will not be available in the queue.