76
Can you explain how federation works on protocol level?
(programming.dev)
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!
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
The easiest way to explain it is that the instances have no native ability to crawl other instances for communities or content. For all intents and purposes, a fresh Lemmy server is on an island and all other instances are their own island until someone builds a bridge to them.
The ability of an instance to receive content is dependent on the subscriptions users add to the database. Once the instance is aware of these other places it will begin checking them for updates and you'll see them regularly whether you interact with them or not.
This goes completely against what the average person is expecting and causes a lot of confusion.
But this is only true if the user looks at the All feed, correct?
It impacts what content is available to users at all. The All feed is just the visual representation of what's actively federating.
Let's say you join a new instance for whatever reason with no outside awareness of how the fediverse works. If you try to search the instance for "sportball" and get zero results the natural assumption is going to be that there are no communities and no interest in that topic. The user has no idea that lemmyserver5000.com has a sportball community with thousands of users because no one with those interests ever did the work to get the content flowing in a way that they could access it intuitively. It's a poor design IMO.
The reason I brought it up has more to do with starting a new instance or using a smaller instance. Communities that the instance isn't aware of (via someone previously subscribing) won't show up at all which causes places to appear non-existent or dead by default. Someone trying a federating website for the first time isn't going to know this, so to them, that's all the fediverse has to offer.
OK, I see that problem. In fact I remember having the same issue myself. (Presumably this will create a secondary confusion problem for "All" subscribers, who will see the content of their feed gradually expand without explanation as other users subscribe to other foreign servers, correct? Whatever, I don't care much about them, someone who subscribes to "All" apparently doesn't know what they want anyway!)
So the optimal solution here would be for each instance to preemptively connect to a whitelist of known foreign communities, perhaps? Or maybe each instance could regularly ping other servers in order to update its search database with popular communities.
It's a poor design if what you want to do is emulate a centralized social media service.
But maybe we should stop trying to do that.
Maybe.
But I'd counter that it's prohibitive to growth. People aren't used to turning up at a domain name only to find out 90% of the content can't be accessed without jumping through a bunch of hoops.