Soni's Blog

On Infrastructure

What is infrastructure? We personally define it as anything that supports something else. Electricity isn't infrastructure, but the electric grid is. Electricity service is provided through the electric grid.

So let's consider decentralized systems. They are not (generally) infrastructure. But more importantly, we should take a look at what infrastructure enables building them. The internet is actually decentralized, mostly, so that's not the issue. It's easy to see how development workflows are centralized tho: Most projects are under full control of their maintainers, be those one or a team.

The same is not true for the internet. The internet is not built by centralized processes - the RFC process isn't the only way the internet is built, and anyone can participate as long as they don't cause trouble. The W3C also builds large parts of the internet, and is not part of the RFC process.

But the web is controlled by three parties - Mozilla, Google and Apple. How did that go wrong? To put it simple, it's a developmemt issue. The developers work under one of those three. What if, instead, we had a decentralized development process, by which everyone gets to work independently? 30 browsers instead of 3, altho many under the same name (they're different versions of the same project).

Allegedly the solution is to create a system where projects and forks contribute to eachother in that way. There should be multiple active forks of a project at any one time, with each active fork doing its own thing and contributing to other active forks, and a community willing to provide support to any of the forks. Ironically, this actually happens with Linux - the #linux IRC on Libera is distro-agnostic, and distros do tend to contribute to eachother.

We can also look at Android for comparison. Linus doesn't care about distros, they're free to do their own thing, but Google cares and so there's no innovation in the Android market, because third-party innovation goes against Google's needs.

This is why GAnarchy is important - it's meant to fill in that goal, it's meant to provide the infrastructure that enables decentralized development. It's so every Mastodon instance can make their fork discoverable, and contribute directly from fork to fork, instead of relying on upstream to accept the patches. We need developers to work together, independently.

On that note: Mastodon's ActivityPub is different from Pleroma's, but nobody calls them different names - they're both ActivityPub.