Most messaging applications can be reduced to a series of interactions that adhere to one of the following messaging models:
With Point-to-Point messaging, messages sent by the Producer are to be processed by a single Consumer.
An extension of traditional Point-to-Point messaging is the addition of multiple consumers consuming from a shared channel or queue. The scale of the overall receiving application is increased by having multiple consumers, but each message is still only delivered to a single consumer.
With publish-subscribe messaging, messages sent by the Producer are processed multiple times by different consumers. Each consumer receives its own copy of the message for processing.
With request-reply messaging, applications achieve two-way communication using separate point-to-point channels: one for requests, and another for replies.