so I've been trying to understand what are the differences between message queues and message brokers and why should you use one over the other.
So from what I've understand. MESSAGE QUEUE helps with inter process communications, but it is limited basically to allow communication between 2 applications only? I'm asking this because for example MSMQ (if my understanding is correct) only stores the message in the queue until it is processed by the first consumer, after which it will automatically remove it from the queue. is this correct ?
Now MESSAGE BROKERS are some sort of extension to MESSAGE QUEUE ? in that they provide a mechanism of PUBLISHER - SUBSCRIBER(S) relation, something as observer does ?
Is my understanding correct ? If so are there any other differences between the two? Also why would you want to use a MESSAGE QUEUE over a MESSAGE BROKER since you will most likely use a distributed system which more then certain will be composed from multiple services.
Thanks.