this post was submitted on 29 Jul 2023
44 points (94.0% liked)
Fediverse
28380 readers
1477 users here now
A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, KBin, etc).
If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!
Rules
- Posts must be on topic.
- Be respectful of others.
- Cite the sources used for graphs and other statistics.
- Follow the general Lemmy.world rules.
Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration), Search Lemmy
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
ActivityPub is not a distributed network: you don't have communications between servers in a mesh, the server that owns a community(ex. fediverse@lemmy.world) pushes out JSON data to any subscribers.
Small servers won't talk directly to each other, unless they're subscribed to communities on each other so having a lot of small servers doesn't actively impact the load on each other, but only on the larger servers that have the more active communities.
And, even then, the JSON requests are going to be a lower impact than a user actively browsing the site, though probably only marginally and maybe not in all cases.
One big difference between the json requests and a user callling for the site directly is your instance pulls all the data all the time, whereas a user only pulls the data they use themselves.
Just to be pedantic, it's not pull, it's push: the data is POSTed from the server that hosts the community.
Right now loading a page makes a bunch of API queries to pull all the related data for the posts, votes, sidebar info, and so on AND the API is very untuned and sending way more data than the WebUI/a client needs to actually generate a page: hence my 'it's less efficient' comment, though this is certainly something that can be tweaked to improve performance between the back and frontends.
I will, however, admit that this is only true if someone is actually reading the content they're subscribed to. The 'subscribe to everything' scripts turn this math on its head because now you are using resources to gather data you don't care about.
Actually, the instance you federate with will push the data, and they do so at their own leisure (configurable by the instance admin), and the data itself is already created in the queue (minimal database load), so it definitely have lower impact than actual users browsing the site.