An asynchronous messaging service: Producers (senders) and consumers (receivers) do not have to be online at the same time. The messaging infrastructure stores messages until the consuming party is ready to receive them. This allows the components of the distributed application to be disconnected.