Let me preface this by saying: I'm pretty sure mastodon will tick along, much like usenet, myspace, IRC, bebo, orkut, livejournal, or even dreamwidth as long as there's an admin with enough spare cash and time. It obviously works for some people, and I can't deny that.
On the other hand, the illustrious technical aim of a purely federated world being the dominant form of social network just seems a little naive at the best of times, given past examples.
This post is about the social and the technical problems with a federated model.
I'm old, in internet terms, and I've seen a lot of distributed and or federated attempts at social networks.
Almost two decades ago, there was Justin Frankel's WASTE, and some things piggybacking off Freenet when P2P was the hot new thing. Fast forward a little, and you had Disapora and Identi.ca, along with protocols like Salmon, OStatus, OpenID, PubSubHubBub, and others. Today we've got Scuttlebutt, Mastodon, Activitypub, and probably several github repos with logos and wikis I'm forgetting. The more things change, huh.
The universal problem with all of these protocols is a familiar refrain, "No-one wants to be a sys-admin." Very few people have the skills and experience needed to keep a server running, fewer can keep it secure, and that's before you even consider the free time and disposable income needed to do so.
Truthfully, this isn't as big a problem as people make out. The early web was littered with phpBB, vBulletin, and other forum products. For any given special interest, there is usually enough people happy to prop up a social network for a year or two before burning out—sometimes even longer.
Even so, people will casually suggest that "you can run your own social network" if you've got problems with the existing fiefdoms. They talk about "joining the fediverse" in the same way people talk about being "a digital nomad", or "being off grid". To them, the federated social network is an ideological choice. It isn't about solving a problem, it's about proving a point, however inconvenient.
Being "off grid" is an apt comparison. Forsaking things like a power grid, a sewer, or even clean water , to declare their own rugged sense of individualism and radical self-reliance—and casually skipping over the absolute dependence on the supply chain. To me, this is exactly how people talk about running their own instance.
In other words: There's a car-selfie-and-sunglasses libertarian ethos underlying federation.
Not just the weird fetish for self reliance, but the load bearing obliviousness to power structures. If you're one of the chosen few, the federated model gives you the freedom and autonomy you crave. For the rest of us plebs, we just get to chose which network we join, and we're just as beholden to the administration, be it a VC backed product, or some random dude with a VPS.
Federation isn't about giving users freedom, it's about giving nerds a sense of control.
Which is funny, because when you use a federation protocol, that dictates how your software works and functions. You don't get to control how your social network functions, the people writing the software do, and even then they don't always have that much control either. If a big instance changes the way things work, the rest of the network has to fall in line or risk isolation.
A federated model loves to assume that everyone's on a level playing field. That you can just fork the software, run your own service, and do what you like, casually brushing over the reality that the biggest players dictate policy, and that if you don't play along, you won't be part of the network.
This is why so many federated die hards are terrified that Google, Meta, or another giant of industry will join in.
They fear that things will turn out like email, where there's a cartel that controls spam blacklists and smaller email servers routinely get null-routed. They fear things will turn out like XMPP, where a large player captures most of the users, only to turn around and drop compatibility. They fear that a large firm adopts ActivityPub, builds incompatible features atop to lock users in, and shut competitors out.
Aside: So far only twitter seems interested in federation, and they invented their own protocol instead. Which no-one uses, not even twitter.
People on mastodon are calling it "Embrace, Extend, Extinguish" which isn't the most accurate comparison, but it's close enough for the discourse. It suggests that the only reason large players join in is to drive others out, which isn't always true, and there are often other forces at work.
A better example of how closed products interact with open standards would be Slack. Slack originally offered an IRC gateway to leverage existing tools and clients, and to get nerds using their product. A few years later, they shut everything down, and all the nerds wailed, but it really isn't a cut-and-dry case of "Embrace, Extend, Extinguish."
IRC is still around, the same five networks are still kicking the tyres. Slack dropped IRC compatibility because it limited their feature development, as it's not always easy to find ways to shoehorn new things onto a text protocol from the 1980s.
Sure enough Slack could have written a more open protocol that served their needs, one that allowed third party clients and servers to exist—but there's still problems with this approach.
You can release new features but you might end up breaking old clients. On the other hand, when you control the server, the client, and the protocol, it's a lot easier to build out your product and release new features. Twitter discovered the same thing with third party clients. Images in tweets? Polls? Video? Bad news if a huge chunk of your userbase are on an third party client.
In other words: The problem about using a protocol is that you cede control to it.
Galloway's book "protocol" is a dry and terse academic treatise that covers this in detail, but the lazy among us can just look at cryptocurrencies, with forks and mining cartels, to see this in practice. With a protocol, you can't release new features, you can't change how things work without getting buy-in from the rest of the network.
When a large player breaks away from a federated network, they're labeled as a bad actor. Sometimes people point to capitalism as being the root cause, but i'm more inclined to believe that fragmentation is a natural consequence of the federated model.
That said, maybe it is a bit capitalism. It's hard to be a majority player without buckets of cash, and usually companies only care about interoperability when they're challenging an existing monopoly, like with Openstack vs aws, or even how kubernetes exists to break amazon's vendor lock in.
The way in which companies push for growth and control isn't unique to federated networks. I'm reminded of the way in which free markets move towards regulatory capture, or that every player is incentivised to become a monopoly player to be able to raise prices.
Even so, I still don't think EEE is the right term to use, because it doesn't have to be about choking out the competition, it can be about gaining control over the services you offer—be it adding features, growing the product, or simply protecting users from spam.
It doesn't always have to be like this.
There are examples of majority players being nicer to the rest of the community, like W3 and WHATWG. Although it is worth noting that many features of the modern web happened entirely outside of the standardization process, like Canvas, XMLHTTPRequest.
Nicer doesn't necessarily mean nicest, and nice behaviours don't happen without encouragement—they happen because of anti-trust and anti-completive regulations.
I think if federation is to survive as a meaningful concept, there has to be meaningful checks and balances against majority players acting like a cartel, but this isn't exactly a popular opinion. The car-selfie-radical-self-reliance types who champion running your own social network are usually dead set against regulation.
(I find this hilarious, personally)
That all said and done, I still don't think federation is a great idea.
Not just because of the fragmented fiefdoms, or the constant churn of administrator burnout, but because things do not scale that well when every instance has to cache a large chunk of the network in order to function.
In some ways, it's the opposite of a distributed network—one where work is reasonably divided across the network. In a federated system, work is duplicated across the network, and as you get more users, the social graph grows near exponentially. This is why most of the larger instances have closed admission, and why a lot of the smaller instances end up falling by the wayside. The admin costs only increase over time.
I'm reminded of multicast. Nerds felt the best way to make multicast work was smart routers that handled aggregation and distribution. Meanwhile, BitTorrent appeared out of nowhere and suddenly sending a file to a million people at once actually worked. People term the latter "application level multicast" but it's more apt to call it another successful example of the end-to-end principle.
To make networks scale, you have to push work to the edges. In social network terms, it would be much easier to scale things if your desktop app or mobile client handled aggregating feeds from different instances.
It would also be a bit nicer to use, I'd wager.
Instead of having single-sign-on and a "anyone can post to my service if they're federated" system, i'd rather have a series of smaller forums and social networks I have to sign up for individually, and a client that let me post to any of them—much like how multi-protocol instant messenger clients worked back last millennium.
Things would still be reasonably federated, nerds could run their own special interest forums, they wouldn't struggle as much with spam or moderation, and it would be much cheaper to run a server too.
Unfortunately, it isn't much of an ideological cause, so none of the nerds are that interested in making it happen. Federation is so hot right now.
