producers/publishers create messages and put them in a queue
consumers/subscribes connect to the queue and take action based on the messages
Decoupling (loosely coupled) producers and consumes allows them to be scaled independently (e.g. if consuming a message takes more effort than producing one)