Skip Navigation

How does federation work?

64

How does federation work?

10 0
Furry Technologists @pawb.social Wander @yiffit.net

How does federation work?

59 31

You're viewing a single thread.

64 comments
  • It's dumb that someone needs to interact with community in order for it to federate with your instance. Like, how are you supposed to find it in the first place? It makes it difficult for communities to grow on instances that are not mainstream which makes decentralization useless.

    • It would be cool if you could see stuff from other servers/instances without someone from your server/instance interacting with it first, yes.

      At the moment I am personally not complaining though. I am sure the developers have tons of things they're trying to work on at the moment. And I can still see stuff from other instances/servers.

    • This is one of the key issues with the entire Fediverse setup and it's not one there are any good answers to.

      Not least since it makes being on the biggest instance objectively the best experience, this defeating the point of decentralisation.

    • In order to avoid this restriction you would need a global instance discovery mechanism, which is extremely hard to implement without a central server that keeps a list of all instances in the network. And if you do implement instance discovery through a central server you really are losing the whole point of decentralization.

      Additionally, it's good that each instance does not federate with everyone else by default. If it did, it would have to process all activity and keep a local copy of all the content in the entire network. This would be insanely inefficient, and make it prohibitively expensive to run even a tiny instance with 1 user and no communities.

      Decentralization isn't useless if you can't immediately see everything in the network, come on... We're just spoiled by centralized services.

    • I just did some math and assumed there are 700 (some instances are blocking other instances) instances and 12 000 communities. 700*12 000 = 8 400 000, users across the platform need to copy url of community and paste it into search this many times to make the platform fully federate with everything. Numbers were taken from here: https://lemmyverse.net/

      • wait, so if you federate with another instance through one community, you won't get to see the rest of the feeds from that instance?

        would subscribing to the domain directly (like kbin allows, maybe lemmy could in the future) reduce the number of actions to 700^2?

        • Yes and yes. I have no idea how kbin works but nubers are correct.

        • This would increase server load and traffic by a huge amount though, and would the benefit really be that big?

          There are already quite good places to find communities for stuff you're interested in, and less niche stuff will be federated "automatically" by these rules unless you're on a small instance.

          Good community lists:
          https://lemmyverse.net/communities
          https://browse.feddit.de/

          Reddit communities now on Lemmy:
          https://sub.rehab
          https://redditmigration.com/

        • Sorry! My bad, numbers are incorrrect but I'm not sure how to calculate correct numbers lol. Wouldn't it be 700x699 or 699x699 because instance wouldn't have to federate with itself?

          • oh yeah, it is n * (n - 1)

            bc ~700 bots need to do ~700 minus 1 actions

            a continue inside an if statement checking if the bot domain is the same as the subscribing one would suffice


            edit: or use a search algorithm to pop the domain from the stack before starting the loop, that would be more efficient

            edit2: even better: assuming all bot names are the same, you just iterate over the stack (constant), and pop each domain (new stack minus popped domain) and feed it to the 2nd loop.

            edit3: SCRATCH EVERYTHING. The bot names don't even have to be the same, you just iterate over a constant stack of botname@domain entries and pop the iteration from it... feed the new stack to the second loop (nested) and done. Why did I take so long to reach this?

      • this number is only completely relevant for someone on an instance all by themselves or with no communities at all. And discounts instances that are or will de-federate either partially or fully. It also assumes some need to be a part of all 12,000 communities. I think tools like you linked solve this issue anyway. I personally believe to a certain extent every community being federated to every instance kind of defeats the purpose of federalization.

        • But that's not my point though? The point is to federate with all sublemmies of FEDERATED instances. The problem is that when you federate other instance it doesn't federate sublemmies of that instance automatically which limits interactions between instances by a HUGE amount

          • It's a risk reward question then. That would 100% slowdown the initial federation if it needed to pull in every community and even if that was accepted, should every instance constantly poll any instance it knows about for new communities? Also you aren't guaranteed to need all those instances anyway and then that's just a waste of space and processing power. Correct, it limits interactions but only to what's necessary which allows instances to be ran on lower powered hardware, allowing more people to join in. With the possibility of third party tools I don't see much of an upside of building that into lemmy.

            • All you need is one person that decides to run a bot for their instance and it will be done anyway.

64 comments