logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

The-potential-of-federation.md (4628B)


  1. ---
  2. title: The unrealized potential of federation
  3. date: 2020-09-20
  4. ---
  5. There are some major problems on the internet which may seem intractable. How do
  6. we prevent centralization of our communication tools under the authority of a
  7. few, whose motivations may not align with our interests? How do we build
  8. internet-scale infrastructure without a megacorp-scale budget? Can we make our
  9. systems reliable and fault-tolerant — in the face of technical *and*
  10. social problems?
  11. **Federation** is an idea which takes a swing at all of these problems.
  12. *Note: apparently some cryptocurrency enthusiasts are parading this article
  13. around to peddle their garbage. Cryptocurrency is the digitally woke techbro's
  14. ponzi scheme, and is a massive waste of electricity and developer effort. Anyone
  15. who tells you anything positive about anything which is even remotely connected
  16. to cryptocurrency almost certainly has ulterior motives and you should steer
  17. clear. So hopefully that settles that. And cryptocurrency is a P2P system,
  18. anyway, NOT a federation!*
  19. The key trait of a software system which is *federated* is that the servers are
  20. controlled by independent, sovereign entities, and that they exist together
  21. under a common web of communication protocols and social agreements. This
  22. occupies a sort of middle ground between the centralized architecture and the
  23. peer-to-peer (or "decentralized") architecture. Federation enjoys the advantages
  24. of both, and few of the drawbacks.
  25. In a federated software system, groups of users are built around small,
  26. neighborly instances of servers. These are usually small servers, sporting only
  27. modest resource requirements to support their correspondingly modest userbase.
  28. Crucially, these small servers speak to *one another* using standard protocols,
  29. allowing users of one instance to communicate seamlessly with users of other
  30. instances. You can build a culture and shared sense of identity on your
  31. instance, but also reach out and easily connect with other instances.
  32. The governance of a federated system then becomes distributed among many
  33. operators. Every instance has the following privileges:
  34. 1. To set the rules which govern users of their instance
  35. 2. To set the rules which govern who they federate with
  36. And, because there are hundreds or even thousands of instances, the users get
  37. the privilege of choosing an instance whose rules they like, and which federates
  38. with other instances they wish to talk to. This system also makes it hard for
  39. marketing and spam to get a foothold — it optimizes for a self-governing
  40. system of human beings talking to human beings, and not for corporations to push
  41. their products.
  42. The costs of scaling up a federation is distributed manageably among these
  43. operators. Small instances, with their modest server requirements, are often
  44. cheap enough that a sysadmin can comfortably pay for the expenses out of pocket.
  45. If not, it's usually quite easy to solicit donations from the users to keep
  46. things running. New operators appear all the time, and the federation scales up
  47. a little bit more.
  48. Unlike P2P systems, the federated model allows volunteer sysadmins to use their
  49. skills to expand access to the service to non-technical users, without placing
  50. the burden on those non-technical users to set up, understand, maintain, or
  51. secure servers or esoteric software. The servers are also always online and
  52. provide strong identities and authenticity guarantees — eliminating an
  53. entire class of P2P problems.
  54. A popular up-and-coming protocol for federation is ActivityPub, but it's not the
  55. only way to build a federated system. You're certainly familiar with another
  56. federation which is not based on ActivityPub: email. IRC and Matrix also provide
  57. federated protocols in the instant messaging domain. Personally, I don't like
  58. ActivityPub, but AP is not necessary to reap the benefits of federation. Many
  59. different kinds of communication systems can be designed with federation in
  60. mind, and adjust their approach to accommodate their specific needs, evident in
  61. each of these examples.
  62. In short, federation distributes governance and cost, and can allow us to tackle
  63. challenges that we couldn't overcome without it. The free software community
  64. needs to rally behind federation, because no one else will. For all of the
  65. reasons which make it worth doing, it is not rewarding for corporations. They
  66. would much rather build walled gardens and centralize, centralize, centralize
  67. — it's more profitable! Democratic software which puts control into the
  68. hands of the users is something we're going to have to take for ourselves. Viva
  69. la federaciĆ³n!