I know there’s donations and the owners can use their own money, but there’s a limit. I doubt a platform with hundreds of thousands of daily users can survive with only donations.
By having more instances and better user distribution. Running a small-ish instance isn’t very expensive, around 5-10 euro a month (some VPS providers are cheaper, etc). As Lemmy development continues, and more optimizations come in, these smaller lemmy instances will be able to support more users.
There is also a discussion on GitHub to introduce user and community migrations between instances. So once that feature is implemented, it will be easier to redistribute everything across all Lemmy instances.
Is there a point where there are so many instances that propagating all that data is too taxing and worse than having fewer bigger instances?
Is there a point where there are so many instances that propagating all that data is too taxing
Yes, that becomes a concern as the network size grows and the amount of aggregate replication traffic increases. Mastodon has like 10x the server count of Lemmy, though… so that’s hopeful. They do use ActivityPub differently though, it possible that federation scales differently between them.
This GitHub issue has a lot of good (but rough and high-level) thoughts on future scaling techniques: https://github.com/LemmyNet/lemmy/issues/3062
Most instances will hit a hard cap where the user support can’t scale anymore. Admins will have to close sign-ups and force new users to other instances to distribute the load. That’s the point of federation.
The issue is admins do not yet know where the limits are, and Lemmy still needs a lot more backend optimization work.
Why? A single Linux server has been able to support tens of thousands of simultaneous clients for many years now.
Bandwidth is not free.
Text is small.
Bandwidth is not free.
Better?
What?
well, text was small I guess :D
The €5/mo VPS my instance runs on has 20TB bandwidth included.
So while it is not free, it can certainly be very, very inexpensive.
It’s super cheap. A lot of us nerds have very good incomes and can pay for an instance that has like 20 TB of network traffic for less than 10 dollars per month.
It’s our way to try and contribute to the growth of Lemmy and also it’s fun to run our own instance.
Edit: Corrected network bandwidth amount.
What? Did you mean 40Gbps for less than 10 dollars/mo? Or did you mean 40GB of traffic total monthly? Huh?
Sorry it was 20 TB traffic per month for less than 10 dollars per month. Have a look here at options:
Sure, that’s fair, but it’s also in a region where typical egress costs are cheap anyways. It’ll be harder to find something like this in say, the SEA or OC regions.
Are you talking about a specific server or just Linux servers in general?
I’m referring to the old “c10k problem”.
I think this doesn’t apply? Aren’t they talking about 10k simultaneously connected users here? With http you connect and disconnect for every request.
Also the database is likely to give timeout errors way before you reach the socket limits.
That sort of thing should be a self-correcting problem to an extent - when performance drops, people will (hopefully) move to other intances. Also, a well-managed instance would stop accepting new members before it go to that point.
Also, there would be developers watching https://fediverse.observer to see if few registrations are open, but sign-ups are climbing in all open instances. Of course they are going to jump in if there’s an opportunity.
People will only do that if they can migrate all the past history to a new instance and the syncing issues between instances are fixed
Until people start donating to instance owners, and instance owners continuously scale up the servers, thus inviting even more people to centralised on the biggest few instances.
I think we’ll see a variety of servers with different funding models, similar to how radio and tv stations in the us can have a variety of funding models. NPR has a network of member stations that all carry their content (if the stations want, or they can get content from another station, or they can make it themselves).
Threads is an example of a federated service with a corporate funding model. I definitely think it’ll survive since they have as much money as Facebook wants to sink into it.
But we’ll probably also see servers that run on donations by a dedicated community.
If Threads is the NBC/CBS/ABC of the federated landscape, then those small servers will be like public radio stations, which operate on donations and the occasional government grant.
I think there are people who would chip in a little bit to fund a non-commercial server just the same as there are people who chip in money to NPR.
I’m posting from a self hosted server running on a raspberry pi! While no long term test has been carried out yet, it’s really snappy :3
I wonder how the network will scale if more and more would self-hosts small instances with just 2-4 users. If it would decrease load or increase load on the instances that hold popular communities.
I’m pretty sure it’s a net increase in load, saying this from my own small instance here. I don’t want to primarily use the big instances - that’s why I started my own. But lemmy.world encompasses so much that any load I would’ve prevented by subscribing to communities outside of lemmy.world is probably negated by lemmy.world already being subscribed to that community. And even if we’re just counting lemmy.world content, pretty sure it’s a net increase because browsing lemmy.world just shows aggregate votes and paginated lists. When federating they’re sending everything, even the 90% of stuff I and my users never even see. I wonder what the tipping point is, where the load of federating communities is outweighed by the load saved by not constantly reloading lists and whatnot. I bet it’s at least 10.
EDIT: Also wanted to add there’s proposals for how to spread out the load without having to switch protocols or anything. I certainly wouldn’t mind my own instance being used to forward stuff on.
I agree, I would like to contribute cpu and memory from my instance to the Lemmy network somehow, without users needing to have an account on my instance.
But it doesn’t work that way currently. Lemmy.world became the largest instance and then we have hundreds of small ones hardly being used at all.
Smaller instances cannot be trusted to have good uptime. For me I have to go down if there is a thunderstorm, need to unplug everything >.< So would need to save individual data to 2-3 smaller instances for it to be reliable.
I hope there might be a community and user transfer functionality. Could spread the load over the currently well hosted but low pop instances. Right now you need to stick with the instance you choose for all eternity :< forever and ever
Why can’t they be trusted? They most likely run in the cloud somewhere and won’t have any issues staying up. :)
My instance has 100% uptime after a month of use, which is more than the largest instances.
I feel like people mostly leave their small instance alone and don’t touch it.
Perhaps just not sure how they are hosted, if they are majority cloud hosted that’s a different thing :3 Assumed smaller instances would run on a home server of some kind.
Would be a nice ask lemmy post perhaps ^^
Since you need a fixed ip address and domain name, it usually rules out running at home, also because internet delivery companies usually don’t provide very good upload speeds to users at home.
So I think you can trust the uptime for sure, but one risk is that smaller instances may decide to shut down if they don’t get any users. So there is that risk… :)
One of the suggestions was a gossip protocol, which wouldn’t need 100% (or close to 100%) uptime. Wouldn’t be outside of the realm of ActivityPub either, it’s not specific about how messages can be routed kind of like how Email can be passed around a bunch before actually arriving at their intended destination. It would be a layer on top of AP though so maybe Kbin wouldn’t be able to join the network. For communities, the only one I actually saw Nutomic or dessalines be interested in is this fediverse enhancement proposal about making groups in such a way that can be hosted on multiple instances. A few large instances could come together to cohost and spread the load between them.
When you say groups that is communities in lemmy terms? ^^ Not fluent in the terminology but with a functionality like this how would you receive older posts? Seems like newer linked instances would start with a blank slate from the point of “bounding”.
Or am I just butchering the meaning with my understanding? hehe
Yes that’s right, Lemmy communities are communicated as groups in ActivityPub, so that FEP would be applicable to communities
I guess you’re a HAM radio operator in this analogy
Love this analogy!
As opposed to a corperate social media site, Lemmy has waaaay lower operating costs (not servers). It’s open source so dev work is volunteer, and there isn’t a bunch of resources dedicated to squeezing users for every penny or appeasing advertisers.
Servers can get pricey for sure, but not having all of that other overhead goes a ways to making it more sustainable.
So I was wondering is it helpfull if i run my own instance than for me and my roommates ? Or ?
There is a lot of debate on whether or not small instances help or make it worse, mostly due to how Lemmy handles pushing updates.
The main consensus is that joining a small to medium sized instance would have the smallest footprint on Lemmy.
That being said, Lemmy has a lot more developers working on it now it has all this attention and now they can see where Lemmy struggles on large instances, so what is true today may not be true in the future.
Oke than we will see what the future holds
Sure why not. Plenty of us have single user instances.
I mean, define “too big”.
Lemmy.world and mastodon.world are funded from mastodon.world’s OpenCollective account: https://opencollective.com/mastodonworld
They seem to be doing alright atm, though who knows how much of that is a byproduct of recent immigration.
Worse come to worse I’m here for a good time not a long time.
Like if an instance like lemmy.world gets too big and fails I’ll probably head to another instance like kbin.social. If it starts a failure cascade people will leave for traditional social media or just leave social media entirely until federation can support it.
Maybe I end up leaving for another social media site, or I just watch youtube and no real social media or something. Whatever happens I’m here while I’m here.
The better question is, how will lemmy survive if instances get too big. The whole point of the fediverse is to prevent centralization.
IMO we need self-imposed regulations that are community enforced. In the context of user count, the community should decide on an appropriate max active user count. Each instance should deactivate signups if they’re over the limit, and if they refuse, other instances should defederate them until they do. In general I’m not a fan of defederation, but I also don’t think we should defederate threads just because it’s owned by Meta. It should be defederated because it’s behavior is anti-fediverse.
I run a lemmy server and its actually very hard to encourage people to sign up and use the server as they have to resubscribe to their communities manually or with a script and people just dont want to do it for basically very little gain for themselves individually even if when hundreds of people do it collectively it helps reduce load on popular servers. Its kind of like the climate change issue. One person doing it on their own doesnt change much and incurs a lot of work so why bother? Even if it is true that 1000 people moving would make a measurable difference.
Https://lemmy.myserv.one if you do want to join, however.
Hopefully they will implement export and import of subscribed communities soon to make relocation easier.
I know it’s not user friendly, but this script exists: https://github.com/wescode/lemmy_migrate#migrate-your-subscribed-lemmy-communities-from-one-account-to-another
I doubt a platform with hundreds of thousands of daily users can survive with only donations.
Is that really so though? Assuming some small percentage of the user base chooses to donate, would that not scale as the instance gets larger, as long as the percentage stays about the same?
I decided to toss something like a buck a month at my instance as I came with the reddit migration and didn’t want to be a part of the problem. I also appreciate the ad-free space we have here on lemmy.
And it’s not like running a PBS station or something in terms of costs. I’m actually pretty optimistic about the donation model, though maybe you’re right? Maybe the optimism is misplaced?
Is that really so though? Assuming some small percentage of the user base chooses to donate, would that not scale as the instance gets larger, as long as the percentage stays about the same?
I would guess that it wouldn’t scale in a linear fashion - earlier adopters who saw first-hand all the problems and what the admins had to do would tend to be more appreciative of their efforts than folks who arrive further down the line when everything is humming along.
That said, donating isn’t the only string to the funding bow - affiliate links would tend to scale linearly with user numbers and I imagine we’ll see bots or even hard coded regular expressions that spot links people add and tag an affiliate link on the end. If they are going to be used, instance admins might as well claw some cash back.
Scaling is a big concern with Lemmy, and pretty much any Fediverse platform. However the positive side is the software can adapt and as it becomes more popular it will naturally acquire more resources.
Admins do have control over the size of their instance. They can shut down new sign-ups if they get to a point where they can’t support any more users. They can either expand their capacity or leave sign-ups closed. Ideally as you get more users you get more support through donations which can cover the cost of expansion.
Another aspect is how well ActivityPub can hold up to demand as more and more instances enter the fold (ActivityPub is the protocol standard that supports the Fediverse). Hopefully the designers have put a lot of thought into scalability. ActivityPub has mechanisms to limit instance resources to what’s on demand from users of that instance. It’s not like each instance has to accommodate the whole of data and bandwidth comprised by the platform.
As users we’ll just have to see how it holds up and have some faith the designers did a good job with scalability. I think the other aspect of having enough instances to support the size of the user base will work itself out naturally.
I’ve been wondering about this not so much from a performance perspective, but rather from a storage perspective. Assuming old posts and comments are never cleaned up, a handful of particularly active instances could easily crush federated smaller instances storage, right?
Not as big of an issue as you’d think. In 2015, the entirety of Reddit could be archived using ~2TB of storage space. Keep in mind that this is the size when saving everything as uncompressed JSON, so the actual DB size would have been even smaller than this!
You’re much more likely to see this DDOS-like effect coming from ActivityPub traffic volume. High activity = Lots of messages = Lots of processing demand. As the Fediverse grows, the baseline processing power necessary just to keep a small instance afloat will steadily rise, but it’s not yet clear how big of an issue this will actually be.
We already saw a pretty major rash of Lemmy instances getting overwhelmed back on July 1st, but a lot of that bottlenecking was caused by quirks specific to Lemmy (which can be ironed out) rather than overhead inherent to the ActivityPub protocol itself (which, to be fair, is still relatively heavy).
From my understanding a instance will only interact with posts and comments (store them) when a user on that instance does. So just federating with a older instance that has a large back catalogue does not mean it will flood the small instance.
Side note about images. They seem to only ever be saved locally on the server it was uploaded to. So custom emojis like will not be saved on for example lemmy.ml (here). Only on my self hosted instance. Perhaps if a post is really popular and I link a self hosted image like that, it might put strain on my host to deliver this image though. Worst case just my small instance will go down and the link will be stale.
Side-side note: I might want to make all emojis smaller so that they both fit in the text better and put less strain on my host.
having a job on the side will help instance owners a lot