this post was submitted on 21 Jun 2023
85 points (100.0% liked)

Technology

37724 readers
48 users here now

A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.

Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.

Subcommunities on Beehaw:


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

https://github.com/LemmyNet/lemmy/issues/3245

I posted far more details on the issue then I am putting here-

But, just to bring some math in- with the current full-mesh federation model, assuming 10,000 instances-

That will require nearly 50 million connections.

Each comment. Each vote. Each post, will have to be sent 50 million seperate times.

In the purposed hub-spoke model, We can reduce that by over 99%, so that each post/vote/comment/etc, only has to be sent 10,000 times (plus n*(n-1)/2 times, where n = number of hub servers).

The current full mesh architecture will not scale. I predict, exponential growth will continue to occur.

Let's work on a solution to this problem together.

you are viewing a single comment's thread
view the rest of the comments
[–] pe1uca@lemmy.pe1uca.dev 1 points 1 year ago

I'm just guessing here, but maybe a better solution would be to just to separate the flows inside the same server, this way the hosts of those server can use have containers dedicated to each flow.
Also I don't know much about architecture so take it with a grain of salt and correct me if I'm saying something silly. We could separate the lemmy container to have an API and a federation container.
The clients still connect only to the API, the API offloads the federation requests to be sent to the specific container which can be hosted in another machine.
So we'll basically have the API and a message broker for the federation request, both being managed by the same admin since each host of a community should be responsible to send the updates to the users/instances subscribed.