What is the Fediverse, and Frequently Asked Questions

| 8 min read

Introduction

Social media is a constantly evolving space, with new ideas coming out all the time and new platforms overtake others, or establish new unexplored territories. I would even argue that social media has become the core part of the internet. It has overtaken the early internet dominated by individual websites and forums.

The Fediverse is one of those ideas in social media that has a very interesting perspective, both from a social and a technical point of view. While the Fediverse has not overtaken mainstream social media by any means, it has occupied a firm niche with millions of active users (accoring to The-Federation.info), and the number seems to increase in sudden bursts in response to certain events, like Elon Musk's buying of Twitter and Reddit charging for API usage by third party clients.

The biggest problem with the Fediverse is that it is intimidating and mysterious to new comers, and seasoned users frequently repeat terms sounding like jargon to those unfamiliar. Terms like instance, federates, seem to confuse people, and there's a degree of choice paralysis among new users regarding which "instance" to chose when creating an account.

Summary

In this article, I hope to demystify some of the Fediverse concept as a new curious observer myself with limited experience. We will talk about what the fediverse is, how it works on a high level, some frequently asked questions, and how to get started if you are interested. I will not be discussing the ActivityPub protocol or any implementations, as this currently falls outside of my scope of knowledge.

What is the Fediverse?

"Fediverse" can describe the world of federated social networks and platforms. Think platforms like Facebook (social media), Twitter (micro-blogging), YouTube (video sharing), Medium (blogs and articles), WhatsApp (instant messaging), etcetera.

A federated platform is one where an instance of said platform can interact and interconnect with other instances of the same platform, or instances of another federated platform.

While each instance of the platform could function independently as a full-fledged social platform, at the same time, multiple instances communicating with each other act as if it is a single platform. Content. They do this through a process called Federation.

If this does not make sense, yet, let's try an example!

Can you give an example?

Suppose you are using a federated platform, and let us take Mastodon as an example, which is a federated micro-blogging (imitating twitter) platform.

Suppose I sign up on one instance of Mastodon and create an account (yes, there are many instances of mastodon!). Let us assume this Mastodon instance is instance-A.com.I can use Mastodon as expected, posting to my profile, interacting with other users on instance-A.com.

Suppose you want to use Mastodon too, but happened to sign up on instance-B.com, a different instance from the one I signed up on. While you can similarly interact with other users on instance-B, seeing their posts, and they see your posts, and so on, you can actually even interact with me on instance-A! You may search for my profile then find it, you can follow me, comment on my posts and share them, and the fact that our instances are hosted separately is no obstacle.

Self-hosted Private Instances Federate too!

In fact, I can even choose to self-host my own instance, where I am the only user. I can just install Mastodon on my server and run it, tag it to domain cosmic-mastodon.com, and suddenly I can interact with you on instance-B!

Federating with Other Platforms

Suppose I am not a huge fan of the twitter-like micro-blogging. I can decide to instead use another platform, as long as it uses the same protocol (ActivityPub is the most common, and used by Mastodon). Say for example I want video content and decide to use PeerTube, which is modeled after YouTube. I can post my videos onto a PeerTube instance, and you can subscribe to my account from your Mastodon account on instance-B.com without any issue! Say I want a more threaded-like interface, similar to Reddit. You can use KBin or Lemmy, and you can again follow my account on lemmy or even follow an entire lemmy community (similar to a sub-Reddit).

Federation: How do Instances Talk with Each Other?

The process of different instances of federated platforms communicating with each other to allow users from each instance to interact with each other and exchange each others' content is what is called Federation.

This is possible despite the fact that different instances are hosted separately and enjoy an amount of independence and control over themselves. Each instance only directly controls itself.

At the same time, federated platforms usually agree on a protocol, or a set of standards for how to communicate with each other (sort of like a language). This allows different instances to be inter-connected despite the separation boundary. They can send content to and from each other, and because they speak the same language (using same protocol), they can integrate this content as if it originated from inside their instance, and give the user the experience of a single inter-connected platform.

What is a Federation Protocol (e.g. ActivityPub)?

A federation protocol is a set of standards for how an instance of a federated platform can communicate with others to form an inter-connected network. You can imagine it like a "language" that different instances speak, so that they can know what to expect when attempting to communicate with another instance.

As an analogy, suppose you and I want to agree to a protocol for our long distance communications. We might agree on the following protocol:

  • For every communication, I will send you a single page via mail.
  • On top of that page, there will be a big text at the top. That's the title.
  • On the page, there will be one line that says "sender: [name]" where [name] is someone's name. Thats the name of the person sending you the letter (most likely me!)
  • There should be a paragraph that starts with "summary:". Thats the letter's summary.

... and so on. Communication protocols are more or less similar, but involve more computing and network concepts. For example, if one federated instance sends a post to another, how would they send the replies or comments to the post? should they expect them to be in the initial communication? what happens if the communication is too large and the network times out? what happens if the user viewing the content is blocked? and so on.

What is an "Instance" of a Federated Platform?

An "instance" of a federated platform is exactly what it sounds like. I can go and install a federated platform like lemmy on my server, and have an entire instance of lemmy on my server, with all its features. The only difference between my instance and others is the content thats on it, and what other instances federate with me or block me (more on this below).

Instances Are Self-Contained

An instance can function entirely on its own. In fact, many platforms allow turning off Federation, and some instances do so. This way, the platform is isolated and does not connect with instances, and it is fully capable of doing so.

Instances Control Themselves Independently

Even with Federation, instances have a great amount of control over themselves. An instance stores and controls its own data, can control its communication with other instances, and can control the underlying resources of an instance. This theoretically allows for:

  • Controlling who gets to sign up and create an account on an instance
  • Banning or deleting users from their own instance
  • Banning users on other instances, but only from their own instance
  • Banning (or de-federating) entire instances from their own instance
  • Deleting content from their own instance
  • Scaling up or down hosting resources for better performance or cost savings

Instances Can't Exert the Same Control on Other Instances

While an instance can infleunce other instances indirectly, like de-federating (disallowing communication with another instance), banning users on other instances from their own instance, and so on, control over other instances is very limited:

  • Can't delete posts on other instances from users on other instances
  • Can't control communication between two other instances
  • Can't ban users on other instances from their own instance

What does it mean for a an instance to "federate" or "de-federate" with another instance?

When an instance "federates" with another, it means it opens up communication with that other instance, allowing content from the other instance to be visible and interact-able from the first instance.

Consequently, when an instance de-federates from another, they cease this communication, making posts from the other instance invisible and uninteract-able from the first.

you may still see posts from a de-federated instance

Note that if there are 3 instances, A, B, and C, and both A and B federate with C, but A and B do not federate with each other, it may still be possible for content from B to be seen in A and vice versa. For example, it may be possible that a user from instance A comments on a post from instance C. This could mean the comment sits on instance C, and thus can be visible to instance B as well.

Instance typically federate with all by default (black-list)

Most instances typically federate with all other instances by default, and black-list certain instances when necessary. Some do follow white-list federation though, meaning an instance has to be explicitly allowed to federate with.

Which instance should I sign up on? Does it make a difference?

Choosing a first instance is what seems to stop most people from starting. While there is some differences across instances, most of the time, it will not change much, and it is hard to choose a wrong instance. Any instance will theoretically give you access to the entire platform, assuming it is not a widely hated instance that most other instances block.

So what difference does it make? there are a couple of things:

Account Sign-up Requirements Vary Across Instances

Some instances have open sign ups, others have them completely closed. Some instances require you to fill out a form, others require you to verify via email. Typically larger instances will have more restrictions, as the task of moderating their instance becomes more difficult, and it is an effort to curb spam.

Some instances have larger federation networks than others

Although in theory, an instance should have access to all other instances on the network via federation, in practice there are a couple of things preventing this:

  • Your instance has blocked / de-federated with a number of instances
  • Your instance is blocked / was de-federated from by a number of other instances
  • Your instance implements whitelist federation. Meaning only explicitly allowed instances are federated with

This is usually not a big concern, unless you join a notoriously hated instance that everyone blocked, or you for some reason have an interest in content on those notorious instances.

In general, if there is someone you really want to follow, then you want to make sure your instance federates with theirs.

Rules and Moderation

Different instances will have different rules and moderation styles. Some are really strict, others are fairly lax.

However, instances that are too lax might get blocked by other instances, if they create moderation problems for them.

Performance and Scaling

It costs to host an instance, and when the number of users grow on an instance, scaling issues start to occur. This can sometimes be remediated by increasing resources or optimizations on the platform itself. Smaller instances tend to do much better in terms of scaling.

Verdict

We should not over complicate this matter, so I think choosing an instance can be done in the following steps:

  • Search the web for a list comparison of instances of the platform you'd like. There is instances.social for Mastodon and awesome-lemmy-instances for Lemmy for example.
  • Choose a random instance! some of them give you random ones at the top anyways
  • Check if it matches your criteria, as it most likely will. Do the rules match your preference? is the sign up process easy enough? Is the federation network sufficient for you? Is the uptime high enough?
  • Don't aim for popular instances with high number of users. They are less likely to have open registration, and that is to curb their scaling issues.

What are the Benefits of Federated Platforms?

I plan to add more details to this answer in the future

Why even consider federated platforms? There are multiple reasons!

  • Accessing or Interacting with Content from Any Platform or Client
  • Removing reliance on single instances of a platform
  • Resisting takedowns by avoiding single point of failure
  • Decentralizing control of social platforms
  • Ability to self-host, allowing users greater degree of control

Alternatives to Federated Platforms?

TO BE ANSWERED LATER

Conculsion

I hope this article helped answer some of your questions about the Fediverse. I will continue adding to this as I learn more.