Correct me if I’m wrong. I read ActivityPub standards and dug a little into lemmy sources to understand how federation works. And I’m a bit disappointed. Every server just has a cache and the ability to fetch something from another known server. So if you start your own instance, there is no profit for the whole network until you have a significant piece of auditory (e.g. private instances or servers with no users). Are there any “balancers” to utilize these empty instances? Should we promote (or create in the first place) a way how to passively help lemmy with such fast growth?

  • TinfoilBeanieTech@lemmy.world
    link
    fedilink
    English
    arrow-up
    38
    arrow-down
    2
    ·
    1 year ago

    You are right. On the one hand, it’s kind of bad, naive distributed architecture (my day job), it could have been done much better. On the other hand, the more important point is that it demonstrates an alternative to centralized. We’ll learn a lot about usage patterns here, get new ideas, and either improve Lemmy or build something better from the ground up. Big thanks to Reddit for driving users this way to test scalability and get much better knowledge of usage.

      • Terrasque@infosec.pub
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Disclaimer: I’ve only looked a bit at the protocols and high levels descriptions of how it works, and this is just my understanding of it. But it seems to track.

        let’s take … Selfhosted@lemmy.world for example. Right now lemmy.world is the Source of Truth on this, which means if you sign up for it on a different host, let’s say myawersomeinstance.com, that first contacts lemmy.world, copies over posts, and then subscribes on new posts for that. Actually not 100% sure if lemmy.world contacts myawersomeinstance.com when there’s a new post, or myawersomeinstance.com polls lemmy.world… But anyway, point is, lemmy.world is authority on it. myawersomeinstance.com also have Selfhosted@lemmy.world data, but it’s a copy of it. And lemmy.world is only authority. So if you post something, your server then sends it to lemmy.world and waits a reply. Then lemmy.world contacts all instances that has at least one user following this to tell about the new post. And that new post now exists on a few hundred databases.

        The problem is the scaling is whack. Okay, you can have 5000 federated servers with users subscribing to Selfhosted@lemmy.world, but that means lemmy.world needs to update 5000 servers per post, and there’ll be 5000x storage used for that post, and ALL 5000 servers contacts lemmy.world to get the new good stuff.

        Frankly, it’s a scaling nightmare. As for a different approach, you could have private / public keys and sign updates from lemmy.world and allow the other instances to fetch the new data from each other. That would also allow more relaxed caching, since it would be generally lower cost to re-fetch the data. Now you need aggressive caching because you don’t want lemmy.world to keel over and die form every server on the planet wanting to hear the latest and greatest posts all the time.

    • Senator Bum Cuckets@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      What makes a distributed system good that Lemmy hasn’t done? Seems like a pretty robust system to me, seems like scaling issues are on the instance host themself. With Reddit’s experience, I don’t see how there are issues

  • KelsonV@lemmy.world
    link
    fedilink
    English
    arrow-up
    26
    ·
    1 year ago

    I just commented on this in another thread: https://lemmy.world/comment/76011

    TL;DR: The server-to-client interactions on Lemmy are a lot heavier than the server-to-server interactions, so even if you’re just using your own server to interact with communities on other servers, it should still take load off of the servers you would have been using directly.

    • LookThere@fedia.io
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      That’s news to me. I thought serverto-server interactions would be heavier since other instances will keep fetching contents from your instance once they start federating. I guess it’s better to join less populated instances instead of crowding on a single instance.

    • Averrin@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Huh, so the problem is about just serving static assets? TBH, I think this problem should be mostly solved, especially for such minimalistic UI. Maybe some (free) CDN? Also UI can use any lemmy server for most of requests (e.g. fetched federated_servers fom a bootstrap node) and use “logged one” only for user actions. I think it isn’t a terrible difficult task for the current ui (it has it’s own backend).

  • Bizzle@lemmy.world
    link
    fedilink
    English
    arrow-up
    26
    ·
    edit-2
    1 year ago

    I have my own Lemmy instance running on my home server, but I’m here. “But Bizzle,” you may be asking yourself, “why go through all the trouble of configuring your own instance just to wind up on Lemmy.World anyway?”

    I’m glad you asked! And the answer is that federation only fetches parent comments. I’m glad Lemmy exists, and I’m going to keep using it, but we need federated sibling comments for this to actually be good, in my opinion.

    EDIT: I actually couldn’t have been more wrong.

  • goldenarchmage@lemmy.world
    link
    fedilink
    English
    arrow-up
    29
    arrow-down
    8
    ·
    edit-2
    1 year ago

    It’s a bit worse than that actually. I’m now seeing several communities with exactly the same name that originate on different servers - so clearly Lemmy doesn’t have a rule about duplication once you cross a server boundary. That’s going to get unwieldy quite fast particularly if, I dunno, “Aww” gets popular on two separate servers at the same time - I guess I’ll have to subscribe to both…

    • Ataraxia@lemmy.world
      link
      fedilink
      English
      arrow-up
      37
      ·
      1 year ago

      Well one instance shouldn’t monopolize a community. If it takes a dump on one instance at least it exists elsewhere. If I want to start up my own cat community I don’t see why that’s an issue.

    • ChrisostomeStrip@lemmy.world
      link
      fedilink
      English
      arrow-up
      20
      arrow-down
      2
      ·
      1 year ago

      I don’t get argument about duplicates. The same situation was on reddit - you’ve got few, sometimes more, subs about same topic. You could subscribe to whichever you wanted. Why on Lemmy this is suddenly a problem?

      • kadu@lemmy.world
        link
        fedilink
        English
        arrow-up
        30
        ·
        1 year ago

        I think users are still having trouble with the mental model for browsing Lemmy.

        The first interaction with the service is already fragmented - you need to choose where to create an account and start browsing. Even though you can browse communities from other servers, people are now seeing them through the lens of “fragmented” “my server vs other server” and that creates the illusion that these duplicates are somehow a huge issue.

        But duplicates can actually be quite useful - a community called “memes” on Lemmy.world could attend to a different audience than a community also called “Memes” but made in an instance entirely in French.

        Also, if two instances have two communities you enjoy, with the same name… Subscribe to both? Nothing stops you from doing that. It’s okay. Reddit had “me_irl” and “meirl” which were the exact same, but with different mods, a relatively similar number of subscribers and quite honestly the same content. I didn’t know the actual difference between the two, and I still do not know - I just subscribed to both and kept getting depressing memes to cry before going to sleep. No issues.

        • chiisana@lemmy.world
          link
          fedilink
          English
          arrow-up
          10
          ·
          1 year ago

          Are there ways to manage lists of such? For example, on the former platform that doesn’t deserve a call out, you can do “me_irl+meirl” and aggregate both into one feed. This makes reading the (albeit potentially cross posted) content in a unified feed much easier.

          Another similar point I’m having a hard time getting over is that with a centralized platform, it is easy to go to “Subject A”, and see everything on that subject. However, now I need to see “Subject A@lemmy.world”, “Subject A@lemmy.ml”, “Subject A@someother.instance”… Yes, I could subscribe to them all, but this ultimately end up creating a noisy home feed with also “Subject B@lemmy.world”, “Subject B@lemmy.ml”, “Subject C@lemmy.world”, “Subject D@lemmy.ca”, … etc. all baked into one feed, as opposed to just something focused on “Subject A”.

          Lastly, discoverability leaves a lot of room for desire. Today, I’m fairly new to Lemmy, I am actively seeking out communities that I might be interested in, across multiple popular instances, and hoping that federation is enabled between the two instances. Tomorrow, I’d find that I’m subscribed to too many (see the noisy main feed issue above), and I’d remove a bunch. Next week, am I likely to go to the Join Lemmy directory to find new instances, and add “duplicate” communities from newly popular instances? I think not.

          I think the long term survival of the platform (to expand beyond just us tech nerds that hate the former platform) will depend a lot on streamlining this workflow to make content discovery much more consistent. Even a simple option where a pseudo “!Community@” (with no instance) feed that aggregates all the “!Community” regardless of instance that you’ve subscribed to, might go a long way.

          • Aninjanameddaryll@beehaw.org
            link
            fedilink
            English
            arrow-up
            8
            ·
            1 year ago

            Discovery really has been the biggest drawback for me. The r/system combined with wikis and sidebars made it very easy to find interesting things.

            That’s lacking in lemmy so far. Which, it isn’t a bad thing, barriers to entry have benefits. But from a user perspective, trying to replace reddit, the difficulty in navigating and finding things is frustrating.

            But I’m coming from reddit, and they aren’t meant to be the same. The issues are part of what makes it next to impossible for what happened there to happen in a federated system. And I’m so fucking sick of corporate bullshit ruining good things . I figure that lemmy will catch up in feature parity soon enough, and there’s bound to be apps that make it easier to use at some point.

            I just wish I had the resources to run a server myself.

            • Mummelpuffin@beehaw.org
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Well, by just searching topics in the search bar you can typically find instances related to the search. You need to click the “chain” icon rather than the “federated star” icon to view the post “from your instance” and stay on your personal account.

              • SickIcarus@sh.itjust.works
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 year ago

                You need to click the “chain” icon rather than the “federated star” icon to view the post “from your instance” and stay on your personal account.

                Woah. I’ve been clicking the star the whole time. This may make things a looot easier.

          • Something Burger 🍔@beehaw.org
            link
            fedilink
            English
            arrow-up
            5
            ·
            1 year ago

            The feature I’ll miss the most from Reddit is multireddits. I wish there were a way to create multilemmys.

            Even a simple option where a pseudo “!Community@” (with no instance) feed that aggregates all the “!Community” regardless of instance that you’ve subscribed to, might go a long way.

            I think we should have both this and multilemmys. For example, I would group all !gaming@... communities in an pseudo-community, then put it in a multilemmy with other gaming communities (Linux gaming, PC gaming, etc).

            • chiisana@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Yeah, I really do think we need both:

              !gaming@... or !gaming@ which aggregates !gaming@instance.a, !gaming@instance.b, … etc. that I’ve subscribed to into a single feed; and

              #gaming which I can put !gaming@..., !pcgaming@..., and !consolegaming@... into a single collection.

              This way we’d get the flexibility to pick and choose what we’d want to see more easily.

        • GhostCowboy76@lemmy.world
          link
          fedilink
          English
          arrow-up
          4
          ·
          1 year ago

          undefined> I just subscribed to both and kept getting depressing memes to cry before going to sleep. No issues.

          Hahahaha I’m sorry but the way you snuck this in at the end just killed me. But you have a valid point. Every platform like Reddit/Lemmy has duplicates. That is kind of the point.

    • R0cket_M00se@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      That’s true, and the point I guess. You sub to all relevant communities and the overlap isn’t an issue because it’s different communities with different instances making content with others interacting through federation. The “subreddit” is diversified to the top communities in all of the highest subscribed instances. It’s just the nature of the beast, but once you find all the top comms it probably doesn’t seem so bad.

  • ComplexLotus@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    1 year ago

    Since Lemmy instance are not backed by commercial interest, but rather by nice volunteers and donors that have money and time to spare, they will be heavily affected by economic downturns (we still can see commercial interests still affect users negatively tho with reddit). Here are my thoughts on the matter:

    • as far as I understand the owner of the domain: https://lemmy.world even has to pay for this fancy domain name in the DNS system … every month subscription service style
      • (and tbh I hate the Domain name system) why should I fund it with my own money?
      • if you hosted with an onion site over tor that expenditure would not exist, but how would users discover your site then? Let me know if you know something about this
    • in times of deflation (meaning money becomes worth more, spending some money on a self hosted lemmy instance becomes nonsensical)
    • tbh if I hosted a lemmy instance and the users of my instance posted high quality content in quantity I would use it to train my own LLM, that would at least create some economic incentive for me to host such a page … but managing spam and bots will be HARD

    That is why you should always back up your comments on your personal device, would be nice if lemmy had an automated way of doing this (I should look into this more)

  • hal@lemmy.one
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Matrix suffers extremely of this issue. It feels like 95% or more are on matrix.org instance. And all major chat rooms are hosted there too.

    I think something like a weekly cap for new registrations as an option would be good. With a hint to other instances.

    It’s kinda the same issue that some games have, like MMOs. People tend to make new accounts on the biggest and overloaded servers because there is the most activity even though stability could be an issue, or login queues.

    But that doesn’t make sense on matrix or Lemmy. Because you can still access all content no matter where you are.

  • Demigodrick@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    This has definitely been a problem with communities being created on the bigger instances and not utilising smaller instances. Happy for someone to say I’m wrong etc, but I think there would be merit in capping instances to x number of users or communities, to force the user base to spread out.

    Also, the way signups work, (ie you find a community you like then click sign up but that signs you up to that instance), further exacerbates the issue and the confusion around how federation works. The sign up links on each instance should lead either to a page with an instance finder, or to a random instance that matches the profile of, and is already federated with, the instance you were on. Otherwise the larger instances have a monopoly and are just going to lead to a bad user experience when they can’t cope with the traffic.

    It’s a self defeating prophecy if users only want to sign up to the instances with the big communities, because then everyone is going to keep creating communities there and nobody is going to want to join a smaller instance.

    I might be talking nonsense and am happy to be told why that is all wrong :)

    • kspatlas@fedia.io
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      If that cap idea was to exist, it would make sense to have it based on the balance of users across the federated servers, so of there’s enough with a similar amount it raises the cap

    • splitcircus@beehaw.org
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      Yes, there should be instance caps, and they should be visible to users.

      That way users can scale, choose, without much thinking.

      This same techinque works everywhere, for example MMO games. You have availability visible and choose servers according to it.

      This would fix scaling partially without much technical changes.

  • LookThere@fedia.io
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    I’m quite worried of how well this federation system will work in the long run, especially when more people coming from Rexxit. As people make more post/comments, every federated instance will have to cache more redundant contents from each other, which also will use more storage thus increasing the fee of every instance hoster. There’s also another problem of visibility in search engines. Because Lemmy/Kbin can be hosted by anyone, it makes searching on a specific domain impossible, unlike how I can just add “reddit” in the search query. Also since there are multiple Lemmy/Kbin instances, there’s a chance there’ll be similar communities spread over, fragmenting the communities even further. Until they can find a way to fix those problem, I don’t think federation is suited for large scale communities.

    As for fragmentation problem, maybe adding a global search for communities like this will help reducing fragmentation. Users can still make their own community in their instance, while other people who don’t need to can easily find the community they want.