By async, I mean that both the 'back end' and the 'front end' are both peers, and both can accept messages at any time from anywhere else. Each process taking part in an MM communications network has 1 input mailbox that anyone can send messages to. Messages that are received are ordered according to priority, and then automatically dispatched to a registered callback function. The MM main loop is incorporated into the GTK main loop so there are no contention problems. Data passed across between nodes is structured into a dictionary, and the API allows the receiver to pick out bits of the message by name.
All data is passed across the network in human readable form with data elements clearly labelled.
The APU supports pass-through mode for building gateways, and mutiple redirection of messages to multiple nodes downstream. This provides a pretty robust form of guaranteed delivery. Development of this library is currently frozen in it's current state, and a big re-work is happening for the next version. MM will be a superset of MQseries in this regard. Building an XML parser into the MM lib means that received XML messages will be validated and then presented to each callback function with a nicely parsed set of variables.