What is MIX?

MIX stands for Mediated Information eXchange (MIX) and it’s basics are defined in XEP-0369: Mediated Information eXchange (MIX):

"an XMPP protocol extension for the exchange of information among multiple users through a mediating service. The protocol can be used to provide human group communication and communication between non-human entities using channels, although with greater flexibility and extensibility than existing groupchat technologies such as Multi-User Chat (MUC). MIX uses Publish-Subscribe to provide flexible access and publication, and uses Message Archive Management (MAM) to provide storage and archiving."

Specification outlines several requirements of which those seems to be the most interesting:

  • "A user’s participation in a channel persists and is not modified by the user’s client going online and offline."
  • "Multiple devices associated with the same account can share the same nick in the channel, with well-defined rules making each client individually addressable."
  • "A reconnecting client can quickly resync with respect to messages and presence."

MIX itself serves as an umbrella for set of MIX-related XMPP extensions that specify the exact protocol. Two of them are required for the implementation to be considered as MIX compliant:

In addition to the above extensions, there are several other that are optional: