IBM WebSphere MQ allows for messaging between different platforms and applications. It uses queues to hold messages in sequence and queue managers to control the queues. MQ clients act as brokers between applications and the MQ server, simplifying development and reducing hardware requirements. The MQ API provides programming interfaces for various languages. MQ also supports Java, JMS, and .NET. Distributed queuing uses explicit connections between queue managers, while clustered queue managers allow for shared queue knowledge and automatic message routing across nodes.