The death of Jabber
Why federated chat protocol XMPP died and lessons for today's decentralization movement
In the late 1990s, when I was in high school, “instant messaging” was all the rage. We would go home in the evenings after school or swim practice and “sign on” to one or more instant messaging services. In my community, the trend started with ICQ and quickly moved on to AOL instant messenger, but all the big platforms had their own version: Yahoo messenger, MSN messenger, QQ etc. The world very much resembled today’s messaging landscape with a half dozen or more apps on your computer and having to remember which person was on which network.
In my final year of high school, I became interested in a project called Jabber (and later acronym-ized as XMPP) to make an instant messaging protocol that promised us a world with what we would now call “federated” chat. It looked a lot like email, anyone could run a chat server and hand out accounts. People registered on different servers could chat with each other. Jabber IDs looked exactly like email addresses.
The technology worked rather well and many of the more tech savvy users of the internet started moving to this chat protocol, running their own servers for themselves or their communities. Mainstream users, however, remained on the proprietary services.
Google & Facebook support interoperability…or did they?
There was huge excitement in the community in 2006 when Google announced that it’s up and coming Google Talk chat app would support XMPP federation. Finally, Jabber was going mainstream! In 2010, Facebook chat also added support for XMPP federation, making millions upon millions more people available via XMPP Federation!
Hurray! Or so it seemed. Things went south as by 2015, both Google and Facebook removed support for XMPP moving back to 100% proprietary walled-garden chat.
Fast forward to today and even the hardcore among us who used Jabber since the early days have stopped using XMPP. What good is a chat server on a federated network where almost all the users have left? Jabber is dead.
What went wrong?
One argument goes that XMPP was overly complicated and heavy protocol poorly suited to the smartphone world that emerged a decade after the protocol was born. While there’s something to be said about its complexity making interoperability a challenge, XMPP proved adequate enough on mobile for WhatApp to use it in non-federated mode to scale their service from zero to acquisition by Facebook for $19 billion users with less than 100 employees.
Another argument was that developing new services on top of this protocol was challenging because not all clients supported all features.
What users don’t know about doesn’t exist
While I think there’s something to both of these arguments, the real reason for Jabber’s failure to build a global interoperable chat network and save us from a home screen full of siloed chat apps, is this that users didn’t know Jabber even know existed.
In the minds of of Google Talk or Facebook Chat users, they were using Google Talk or Facebook Chat. No one told them that Jabber existed and that there were people outside of Google or Facebook that they would chat with. Because orders of magnitudes of more people were using one of these two large platforms, when the companies removed XMPP federation support, very few people even noticed.
Compare this to email. Normal users have a concept of the existence of an abstract thing called email. They know that if you have an account on an email service provider and connect to that service provider either via their web site or an email app, that given another person’s email address, you can send them a message.
This concept of email exists separately from users’ concept of the apps or companies via which they use email. People sign up with Gmail because they want email. Gmail gives them an email address and access to email. There’s an expectation that if I sign up for an email account from a company that I can use that account to send and receive email to anyone else who has an email account no matter which company providers their email.
This understanding makes it much harder for a large email provider like Google to come along and say “Hey, from now on you can only send messages to other Gmail users.” Users would complain that service is now broken when they find that emails from their friends using Fastmail or colleagues using Office 365 are no longer received and they’d start shopping for another email provider that works.
Lessons for our decentralization movement
There’s a lesson here for those of us interested in decentralizing power on the internet. While users may not care about the underlying technology or protocol of a network, it is absolutely critical for them to know that it exists and that it is working. The better their understanding of the essential concepts and fundamental principles, the harder it will be for a powerful player to come in and unilaterally change or destroy the network.
Email is both some technology and a shared belief that users have in how email should function. Jabber failed because it was only technology, too few users believed in how it should function.
To apply this lesson to Blockstack, the project with which I am most familiar, users need to have an understanding of what a Blockstack ID is and what characteristics it has. They also need to have an understanding of what a Gaia storage hub is, that they have control over this data and what this gives them.
If the elements of ownership are hidden from the user so that they don’t know they exist, and can’t tell if they are working, then the app developer can take them way at any time and the user will be none the wiser. There is no ownership if you don’t know you own something and can’t tell when the thing you didn’t know you owned was taken way.
Drawings in this post are based on work by SiC/CYAN released under CC-BY-NC.