this post was submitted on 20 Jun 2023
63 points (98.5% liked)
Fediverse
28297 readers
748 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 [email protected]!
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
I posted this in Ask Lemmy but since it didn't get traction I'm gonna piggyback on the visibility of this thread:
As i learn my way around ActivityPub based services, what stands out to me the most is federation is very much exposed to the users. (That, or I still just haven’t wrapped my head around the architecture details and how they manifest in terms of user experience.)
Am I just misunderstanding this, or would the end-user experience be more fluid and functional if the federation mechanics were mostly ‘under the hood’. What I mean by that is - right now if there’s a community I would enjoy participating in that is located on a different instance, in order to do that I need to (a) know it exists in the first place, (b) know what instance it is on, and (c) explicitly tell my instance about its address in order to join.
Would it be possible to have some form of master index (replicated across instances - not a centralized service) along with a public standard for registering an instance/community on the index? And if something like that existed, couldn’t that push what is an inherently more technical detail to lower levels of the implementation, and make for a simpler UX by allowing every instance to expose a more complete list of communities to users from directly within whatever instance they choose to use?
This is probably the biggest issue I have with Lemmy right now. To make matters worse, it's really easy to miss how the system works. A lot of new users on smaller instances probably think this place is a ghost town because they don't see many communities in the directory. It's not ideal to have to use an external tool to find communities, then extra problematic that the actual process is so awkward: manually pasting the address from the external site in the search bar, then you get a "community not found" warning but ignore that, then the community will appear but it'll grab the old posts and not the comments. Weird.
I can accept that it would be too much if every single instance defaulted to a full local sync of every other community on every other instance, but they should at least show up in a list when searched for, IMO.
It may make things simpler for the user, but at the cost of storage and performance of every instance in the index, which won't scale well as more instances are added over time. I personally think it's better the way it is. As long as you are educated enough to know how to federate with other instances you choose to federate with, you can keep your own instance minimally connected to only the instances and communities you actually care about.
Maybe a good compromise would be for such an idea as a globally replicated index, to be optional, so individual instances could keep it disabled if they wanted to. If you choose to enable it as an instance owner, the pain points for your end users go away, at the cost of performance and other potentially negative side-effects. If you choose to keep it disabled, you can still federate with any instances you want, but you won't participate in the index. Or maybe your instance would be listed and replicated to other instances' indexes, but your own instance won't receive updates as the global index continues to grow. Since it would just be for convenient discoverability, there's not really any problem with that. No functionality would be lost for your or any other instance.
I’d think the cost to storage and performance would be trivially small, not even a rounding error relative to the over server/host loads associated with an instance.
I mean, you dont have to do it personally. Just someone from your server has to tell the local server "hey, im interested. Please give this server a feed" and then everyone on that server now gets a feed. You can also use the community search and just select all and then it will search out and then you can subscribe from that page. It's basically a master list of communities. For instance https://lemmy.world/search/q/pokemon/type/Communities/sort/TopAll/listing_type/All/community_id/0/creator_id/0/page/1 then everyone on lemmy.world now has to deal with an influx of pokemons...
I might be misunderstanding but it basically works the way you want it to work but in a different way than you want it to work.
The mechanics aren't always smooth for the first subscription to a community on an instance.
Yeah, notably it pulls all(?) the old posts but not the old comments. Good enough for most use cases but kind of annoying if there were any active discussions you wanted to take part in.
I think what you're describing is different. It lists only the communities the current instance knows about, it does not list all communities on all instances, and it doesn't even list the subset of all communities on known instances.
I know what you mean, but I'm not sure it's a good idea. Look at the recent beehaw-defederation drama. This would have been totally intransparent if the whole federation thing would be something that's only running behind the curtains.
Wouldn't this cause similar issues to blockchains, where new users need to download a huge blockchain file? New instances would need to download an enormous list of every single community on every single server. Wouldn't that eventually cause issues?
Nah, the file would be small and only instances would need to keep a record of it. It's no different from the community list already maintained by instances, just would be extended to cover all participating instances. even if there were 1 million rows to the table, that's a very tiny dataset.