What is Cloud Messaging?
Cloud messaging provides secure, reliable program-to-program communication as a cloud service. The cloud service typically delivers a publish/subscribe messaging pattern, a form of asynchronous program-to-program communication where any message published to a queue is immediately received by all of the subscribers to the queue. The cloud messaging service typically provides all the state management and tracking of clients so that individual applications do not need to take on this responsibility and the complexity of message delivery is built into the cloud messaging service itself. This type of infrastructure allows users to focus on their applications rather than on the secure and reliable sharing of data between applications, and it allows users to run those apps on virtually any device.

With the shift of applications to the cloud, cloud-based messaging is becoming increasingly popular.
Messaging is often chosen over traditional request-response approaches when the two programs run asynchronously, when the integrity and reliability of the message delivery are important, or when the same message must be delivered to multiple consumers. Messages can be delivered either to specific devices or they can be sent to all devices that subscribe to the relevant application.