[Standards] Inconsistent Subscriptions in XMPP
pavlix at pavlix.net
Tue Feb 24 00:49:50 UTC 2009
There are several cases when subscription databases in XMPP are
You may view subscription information as a global distributed database.
Subscription state between two JIDs, for example a at A and b at B are stored
in two places at the same time. Servers A and B maintain their own
copies of subscription state.
For a at A's subscripton to b at B, server B holds the authoritative record,
while server A has a non-authoritative copy. I believe we need a
mechanism to automatically check consistency of these records and fix
any inconsistency to ensure that:
* If the authoritative information changed without notification to an
interested party, the interested party should discover it as soon as
* The same for nonexistant users.
Inconsistencies occur when:
* The interested server is down while the changes occur.
* A notification was lost.
* A domain is moved to another server without copying the
database (the subscriptions must be re-created manually)
* Database is restored from a backup due to data corruption.
* Server would monitor suspicious stanzas (e.g. messages and presence
from an offline resource) and check the subscription state.
What with the roster items that are inconsistent?
* Mark as inconsistent, let the client present it to the user to take
* Auto-repair and thus maintain consistency
Looking forward to all feedback.
Freelance consultant and trainer
in networking, communications and security.
Jabber, Mail: pavlix(at)pavlix.net
More information about the Standards