[Standards] Taking a Machete to MIX
steve.kille at isode.com
Mon May 21 15:06:04 UTC 2018
Following the recent discussions about MIX, Kevin Smith and I worked out a
plan to split up MIX.
This is now eight XEPs. Here is the summary from the updated 369:
"MIX is specified as a family of XEPs that address the full set of
requirements. Only two of these XEPs are mandatory for providing a MIX
service. The others provide additional services and are used when these
additional services are required. Each of these specifications has a short
name, which is used to refer the specific XEP. The term MIX is used to refer
to the family of XEPs. MIX is extensible, and it is anticipated that further
XEPs will be added to this family. The XEPs are:
1. MIX-CORE. Mediated Information eXchange (MIX) (XEP-0369) . This
specification, which is the central mandatory MIX specification. This sets
out requirements addressed by MIX and general MIX concepts and framework. It
defines joining channels and associated participant management. It defines
discovery and sharing of MIX channels and information about them. It defines
use of MIX to share messages with channel participants.
2. MIX-PRESENCE. XEP-0403. This optional specification adds the ability for
MIX online clients to share presence, so that this can be seen by other MIX
3. MIX-PAM. XEP-0405. This mandatory specification defines how a server
supporting MIX clients behaves, to support servers implementing MIX-CORE and
4. MIX-ADMIN. XEP-0406. This specifies MIX configuration and administration
5. MIX-ANON. XEP-0404. This specifies a mechanism to hide real JIDs from MIX
clients and related privacy controls.
6. MIX-MISC. XEP-0407. This specifies a number of small MIX capabilities
which are useful but do not need to be a part of MIX-CORE.
7. MIX-MUC. XEP-0408. This defines how MIX and MUC can be used together.
8. RELIABLE-DELIVERY. MIX-CORE needs messages to be distributed without
loss. This specification is important for MIX, but may be useful in other
I've submitted PRs for the first seven. The eighth is to be written.
There is a git conflict (almost certainly my error) which Jonas Wielicki has
kindly agreed to sort out over the next few days.
Overall, I'm very pleased with the change. Doing the separation has
allowed a range of useful tidy up and error fixing. I'm hoping that this
will be generally seen as a good thing, but if you believe that a single
integrated spec is better, now is the time to say.
An interesting discovery is that MIX Presence needs Proxy JIDs, so these
remain central to MIX. Presence needs to come from the MIX domain. We
want to avoid the MUC issues of "nick as resource". So this means proxy JID
or something very like it.
I'd welcome review on any/all of the new specs. I am particularly
interested in reviews of MIX-CORE (369), to make sure we are happy that this
is the right central piece.
MIX-CORE came out a just under half the previous size of MIX. Quite a bit
of the length is general descriptive material, setting out the framework,
and basic things such as discovery which are simple but take space. My
sense is that core is now down to a very useful clean base.
More information about the Standards