As its name implies, IBM MQ is a message queue from IBM. It is proprietary (not open-source).
You can download it for free for development purposes.
However, at the production stage, you will need to purchase the IBM MQ license.
The license gives you access to IBM MQ Advanced, which is the complete package.
IBM MQ is a message queue.
You need to use a queue manager to use message queues from IBM MQ.
You can download and install queue managers locally, use them from Docker, or use them deployed in the cloud.
The queue manager is the server while the IBM MQ queues you interact with are the actual message queues.
IBM MQ supports both point-to-point and publisher/subscriber messaging architectures.
In point-to-point, the sending channel specifies the destination’s name.
The sender mustn’t need to know where the recipient is found.
For publisher/subscriber, publishers publish messages to a topic.
IBM MQ then sends the messages to subscribers of that topic.
IBM MQ also supports multicast.
Multicast is a special publisher/subscriber pattern.
With multicast, once IBM MQ has set the connection between publishers and subscribers, IBM MQ shifts the publication process to the network.
That is, IBM MQ leverages the network to distribute messages.
This makes it more performant and fast and it will now have space and time for other processing.
IBM MQ has Advanced Message Security.
This feature permits message encryption on the sending and receiving services.
However, IBM MQ queues can’t decrypt.
So there is no data validation.
Also, this security feature is exclusive to only IBM MQ Advanced users.
In summary, IBM MQ is a proprietary message queueing middleware that offers great features for service-oriented architectures.
It offers both producer/consumer and publisher/subscriber message patterns.
You need to purchase an IBM MQ license to enjoy the full benefits of IBM MQ.