We Distribute, Part I: The Road to Federation

Sean Tilley
We Distribute
Published in
3 min readMay 29, 2015

In the beginning, there was Laconica, which later became known as StatusNet. A massive amount of the work that went into this is due to Evan Prodromou, who is now spearheading an effort to standardize work on a communication protocol with the W3C Social Working Group.

As a networking project, it was the first public implementation of the communication protocol known as OpenMicroBlogging, which later evolved into the OStatus protocol. These technologies provided a significant building block for future federated networking projects to study and reference.

In terms of how StatusNet was used, it resembled an early version of Twitter, with the added benefit of group functionality. What made it unique is that users on one Laconica server could communicate with users on completely different servers.

Identi.ca served as a historic social host geared toward the Free Software community, and was at one time cited as the most popular instance.

Federation in a nutshell

To understand what federation is and how it works, it’s important to first point out how it’s different from traditional networks. There are differences in opinion over how the idea itself should be implemented, but generally most people agree on what the idea is.

A basic depiction of federated networking. Most federated social apps work in a similar way to this, with a few tweaks to software libraries or system architecture.

Historically speaking, most modern web applications such as Facebook, Twitter, SoundCloud, and Instagram all have their users in what could be referred to as a walled garden.

What this means is that users on one service mostly can only communicate with other people on that same service. They stay there because all of their friends are there, and two-way communication with other websites just doesn’t work.

If you’re on any one of these services and want to talk to a friend that only uses something else, you have to join their other service.

A person on Instagram can’t follow someone on DeviantArt with their Instagram account. Similarly, a person on Myspace can’t send a message to someone to someone on Facebook. Of course, it is possible to hook apps together so that when you post a status update on Twitter, it also updates your Facebook status. This is all fine and dandy, but that kind of connection only sends messages one way from server to server.

Now, take everything you’ve just learned about regular networking, and throw it out the window. I’ll wait.

What if you didn’t have to join all those other services? What if you just had a space on the web somewhere, a friend had their space somewhere else, and you both could connect and communicate regardless of whether you were on the same server or not?

Like email, but for other types of communication abilities as well. For example, comments, likes, favorites, messages, and photos can all be shared through a mutual subscription to one another.

In the case of StatusNet, you could think of it as owning your own personal Twitter server online. After setting up your account, you could connect to friends on other sites using the same thing.

At its peak, Identi.ca served as a Twitter-like communication hub for people involved in both Free Software and Open Source projects, which allowed people in both camps to interact with each other.

Recent Development

A vanilla install of GNU Social v. 1.2.0-dev.

During June 2013, stewardship of the StatusNet code had formally been handed over to the GNU project. Since then, StatusNet is now known as GNU Social, and has been going under a steady overhaul by volunteer developers.

GNU Social is just one attempt at making a federated social application. There are other projects within the space that build upon the core ideas behind OStatus, and we will cover them in depth as the series progresses.

--

--

Sean Tilley
We Distribute

Editor of WeDistribute. Obsessed with Free Software and Decentralization. Also makes things, sometimes with Elixir.