ActivityPub isn’t just what we’ve been doing over the Christmas break
Systems Approach Toward the end of 2022, we joined the masses of people leaving Twitter for Mastodon. The fact that Mastodon, building on some earlier ideas for federated social networking, is a decentralized approach, has renewed our interest in, and hope for, the decentralization of the internet.
When Larry and I kicked off Systems Approach back in 2020, one of our first tasks was to brainstorm a list of books we’d be interested in writing. Two years later we’ve managed to bring three of those ideas to life, with books on SDN, Edge Cloud Operations, and TCP Congestion Control. But one book that remains on the to-do list has the working title “The Decentralized Internet”. We’ve managed a few posts on that topic (e.g., this) but we’re still some distance away from having the material for a book.
On top of that, the backlash against Web3 (quite justified in my view) cooled my enthusiasm somewhat. But there is definitely more to decentralization than Web3, with the rapid rise in popularity of Mastodon and the Fediverse an interesting case study.
There’s been a flurry of articles on the exodus from Twitter to Mastodon in both technical and mainstream publications. The underlying technology of Mastodon is ActivityPub, a protocol specified by the World Wide Web Consortium (W3C). Put another way, Mastodon is an implementation of ActivityPub.
ActivityPub draws on a long line of research in publish-subscribe systems (of which this 1987 paper [PDF] may be one of the first).
This post by Bryan Cantrill made several good points about the benefits of decentralization as it applies to social media, including the increased opportunities for experimentation that arise when the operation of the social network is no longer the province of a single corporation.
We’re seeing lots of experimentation with Mastodon deployment, data is being shared, and a range of different ActivityPub implementations beyond the canonical Mastodon server (e.g. GoToSocial, Takahe) are appearing.
It’s worth digging a bit deeper into what we mean by decentralization here. Twitter is not a monolith: it is a giant distributed system, made up of a large number of microservices. For example, here is a quote from a Twitter infrastructure blog:
Organizationally, however, Twitter is centralized. When Twitter decides to change its API, it can do so unilaterally, to the detriment of any third party apps that try to use that API. Likewise, it can (and did) unilaterally change its policies on content moderation, banning of users, etc., in a way that drove plenty of users (including me) to look for an alternative.