2023-04-02

The architecture of the Fediverse: network, apps and people

By Johannes Ernst

https://reb00ted.org/tech/20230402-architecture-fediverse-network-apps-people/

Since Elon’s acquisition of Twitter, the “Fediverse” has become a thing. A thing that many people talk about, often in nebolous terms. I think we need to be more precise, and to do that, it might be helpful to distinguish several parts of the Fediverse.

I believe the primary components of the Fediverse are the following, best shown as a layered architecture:

People

You and me; sometimes companies

Apps

e.g. Mastodon, PeerTube

Network

ActivityPub (and related protocols)

To summarize this diagram: there is a communications network (at the bottom), over which apps can communicate with each other (middle), enabling people to interact with each other in various ways (top).

Have you noticed that when people talk about the Fediverse …

  • … sometimes they mean the network, as in: “all these apps can talk to each other because it’s all ActivityPub” …
  • … and sometimes they mean people, as in: “We have genuine relationships with each other in the Fediverse because no 3rd party inserts ads and addictive algorithms”?
  • And of course, when they use “Mastodon” as the term instead of “Fediverse”, that’s because in this view, the Fediverse is primary formed by thousands of app instances, most of which today are Mastodon instances.

This distinction is very important, because the properties of the “Fediverse” in the various definitions, are quite different. For example:

  • If I think the Fediverse is all about people, and how they relate to each other, I don’t really care whether it’s based on ActivityPub, or other protocols (like SSB, or Bluesky, or Webmention, or …) or any combination. In this view, the Fediverse is a “place” where certain social norms are different, including that certain behaviors prevalent in society or in other social networks (like expressions of racism) are frowned upon or grounds for blocking.

  • If I think the Fediverse is the set of all software nodes that communicate over ActivityPub, then I’m baffled why anybody should think some of those nodes shouldn’t be bots, or publish advertisements or special offers; ActivityPub can carry all of those and more. In this view, in its extreme form, the Fediverse could ultimately encompass a lot of internet communication infrastructure, including replacing SMTP for “e-mail”, for example.

Because of this confusion, sometimes the term “Fediverse” is actually less than helpful. On the other hand, there isn’t an obviously better term (or several; we need several).

In my personal view, the network/interop-centric definition of Fediverse is more useful: the Fediverse is the set of all nodes that can communicate semantically with each other through common protocols (ActivityPub).

Given this, it allows many new apps to be built that connect to the same network – the Fediverse – creating lots of new value, as I described earlier.

And those in turn enable people with common values to find each other, and form communities, that practice forms of interaction that would be much harder on centralized social media platforms. To use but one example, my primary Fediverse account is hosted by social.coop, a member-owned cooperative that formed for the purpose of hosting a social media server that works for them; self-funded, self-governed. Imagine that outside of the Fediverse!

But regardless of what the term “Fediverse” is ultimately going to end up meaning, whether that’s my preference or some other interpretation, let’s not conflate these different ideas, otherwise all the beautiful opportunities created by the Fediverse to communicate with each other won’t help us avoid talking past each other about the very thing that makes it possible to talk!