Skip to content

Instantly share code, notes, and snippets.

@taoeffect
Last active July 18, 2024 03:58
Show Gist options
  • Save taoeffect/43455a09bb2ba3d5becda9f7441894df to your computer and use it in GitHub Desktop.
Save taoeffect/43455a09bb2ba3d5becda9f7441894df to your computer and use it in GitHub Desktop.
What is "Federation"?

What is Federation?

I've tried to find a good explanation online to help me explain what it means for Shelter Protocol to be a federated protocol, but I can't find a simple definition anywhere! Even Wikipedia does a lousy job:

federation-wiki

So let's define it here in a way anyone can understand! 😄

Federation means designing software to use a federated protocol (defined next).

A federated protocol is a protocol (defined next) that makes it possible for servers to communicate with each other, regardless of who is running those servers.

A protocol is language that computers can use to speak with each other. This language follows very precise rules to ensure the computers do not get confused and do not misunderstand each other.

So, putting it all together: federation is a way of creating computer software, and specifically server software, that anyone can run, so that your server can communicate with anyone else's server.

Examples of federated protocols

  1. Email (SMTP)
  2. Jabber (XMPP)
  3. Mastodon (ActivityPub)
  4. Group Income (Shelter Protocol)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment