Link aggregators have a problem on the fediverse. The approach is server-centric, which has positives, but it also has major negatives.
The server-centric approach is where a community belongs to a certain server and everything in the world revolves around that server.
The problem is that it’s a centralized formula that centralizes power in a the hands of a whichever servers attract the most users, and potentially breaks up what might be a broader community, and makes for a central point of failure.
Right now, if user1@a.com and user2@b.com talk on community1@c.com then a lot of things can happen to break that communication. if c.com defederates b.com then the communication will not happen. If c.com breaks then the communication will not happen. If c.com shuts down then the communication will not happen. If c.com’s instance gets taken over by management that doesn’t want person1 and person2 to talk, then the communication will not happen.
Another problem is that user1@a.com and user2@b.com might never meet, because they might be on community1@a.com and community1@c.com. This means that a community that could reach critical mass to be a common meeting place would not because it’s split into a bunch of smaller communities.
Mastodon has servers going up and down all the time, and part of the reason it’s able to continue functioning as a decentralized network is that as long as you’re following people on a wide variety of servers then one server going down will stop some users from talking but not all of them so the system can continue to operate as a whole. By contrast, I’m posting this to one server, and it may be seen by people on a wide variety of servers, but if the one server I’m posting this to goes down the community is destroyed.
There are a few ways to solve the problem…
one method could work as something like a specific “federated network community”. There would be a local community, and the local community would federate (via local mods, I presume) with communities on other instances creating a specific metacommunity of communities on many instances that could federate with other activitypub enabled communities, and if any of the federated communities go down the local community remains. If any servers posed problems they could cease being followed, and in the worst case a community could defederate totally from a server (at a community level rather than a server level) In that case, community1@a.com and community1@b.com could be automatically linked up once both connect to community1@c.com (I’m thinking automatic linking could be a feature mods could turn off and on for highly curated communities), and if c.com shuts down or defederates with one of the two, user1@a.com and user2@b.com would continue to be able to talk through their federated network.
Another method would be something more like hashtags for root stories, but I don’t know how server-server links would be accomplished under a platform like lemmy, kbin, or lotide. I don’t know how hashtags migrate on mastodon type software and how that migrates. In that case, it might be something like peertube where a network is established by admins (or users, I don’t know) connecting to other servers manually.
Finally, I think you could implement the metacommunity without changing the entire fediverse by having the software auto-aggregate metacommunities. You could create a metacommunity community1 on a.com that would then automatically aggregate all posts on communities called community1 on all known servers. The potential downside of this is you could end up with a lot of noise with 100 posts of the same story, I haven’t thought much about how you could handle duplicates so you could participate but wouldn’t have 100 similar posts. In this case with respect to how to handle new posts, each metacommunity would be a local community and new individual posts would be posted locally and federated to users on other metacommunities. If metacommunities of this sort became the norm, then the duplicates problem may be solved organically because individuals using metacommunities would see the posts on other metacommunities and wouldn’t bother reposting the same story, much like how people see a story and don’t repost in individual communities.
One big problem is scaling, doing something like this would definitely be a non-trivial in terms of load per community. Right now if one person signs up to one community, they get a lot of posts from one server. Under a metacommunity idea like this, if one person signs up to one community, they get a lot of posts from many, many servers. lemmy.world has 5967 total instances connected to it, and 2155 instances running lemmy, lotide, kbin, mbin, or friendica that could contain similar types of community, that’s a lot of communities to follow for the equivalent of one single community, especially if some of the communities in the metacommunity have a lot of traffic in that community. You’d have to look at every known server to first see if it exists and second if it has a community appropriate for the metacommunity, and the metacommunity would have to routinely scan for dead hosts to remove from the metacommunity and live hosts that may start to see an appropriate metacommunity has been created.
I’m sure there are other solutions, but I’m just thinking of how things work within my current understanding.
Of course, for some people, the problem is one they don’t want solved because it isn’t a problem in their view (and that’s a legit view even if it’s one I’m not really amenable to). Some people prefer smaller communities, or want tighter control over their communities. For servers or communities that don’t want to be brought into a metacommunity, it seems like some sort of flag to opt-out (or opt-in as the case may be) should be designed in – I’m thinking something in the community description like a textflag NOMC or YESMC that server software would be designed to respect.
With respect to moderation, It seems to me that you could have a variety of strategies – you could have a sort of default accept all moderation where if one instance moderates a post other instances take on the same action, or whitelist moderation where if one instance or one set of moderators on a whitelist take an action then other instances take the same action, or a sort of republican moderation where if a certain number of instances take an action then other instances take the same action, and probably an option for individual metacommunities to only accept moderation from the local community the original post came from. I suspect you’d want a choice in the matter per metacommunity instance on a server.
I’d be happy just to have an app that would let me create a metacommunity of my own (ie: showing me an “Android” community (folder) that I could stick android@lemmy.world, android@lemmy.ml, android@lemmy.ca, and android@whatever.else into).
Ultimately, there’s some humour in how fixing this problem in 2024 was actually done 30 years ago when we had newsgroups. comp.technology.android would have solved all of this.
kbin seems like it’s trying to do this with “collections”. E.g. this is one that’s an aggregation of like 15 different cute animals picture communities.
Why they decided to say “magazines” for communities and use /m/, and then circle back around to the letter /c/ out of all the possible letters for the URLs for “collections,” is a whole different conversation.
Solving the fragmented community problem is something I’ve been pondering too, and the meta-community idea you described seems interesting.
Obviously, a proper technical solution will be difficult. Federation comes with a host of challenges, as well as benefits.
Giving communities the opportunity to be open to other like minded people on different instances would be beneficial to the network, for a number of reasons.
If two communities on different instances have the same name, it doesn’t seem crazy to ask each of them if they’d like to federate with each other.
That way, apart from instances defederating, discussions could continue even if individual servers go down.
Of course, people love to hold on to their little fiefdoms, so the issue is as much social as technical.
The solution to this is to start your own instance and federate the other instances that you want to make sure you can always reach. This is a solved problem, really.
Starting your own instance doesn’t solve the problem of big communities being reliant on the one specific instance they are hosted on to not go down or rogue.
For that kind of stuff you have to go beyond the fediverse. Any system with federation like that will be prone to instances defederating eachother or otherwise refusing to talk to eachother.
It’s also not really designed to support free speech absolutism. Ideally people host their communities on instances that are relatively compatible in terms of policies. You can also make accounts on multiple instances so defederation isn’t too much of a problem.
But if you’re looking for something that is more anonymous and more censorship resistant, it exists: Aether is a distributed thing that doesn’t rely on instances hosted by the community, it works more like P2P networks with a DHT and I think IPFS for files.
I’ve tried aether, and I presently run a nostr node and satellite instance, but I’ve found both of those solutions have a problem due to relying on the local client. Many networks are locked down, so I find many places I can’t really participate in nostr or aether on the go (the latter is desktop only anyway), while I can hop into any of my activitypub related instances.
I know of one project to create a nostr client that I believe will handle the communications stuff at the server end, but we’ll have to see – you never know if projects actually get off the ground, or if they’re actually worth using until they get up and running for real.
the problem with automatic meta communities
is not all are the same despite the name. Communities on a nsfw server do not belong with the rest. I can imagine a server where the policy\purpose is to mock a topic, or mayb humor takes servers.I do think it’s a problem that doesn’t need solving, but would maybe some sort of instance integrator sites help keep the fediverse open and easily explorable?
I should have said threadiverse in the title. Oh well.
You can edit it; it’s not reddit.
(and lotide doesn’t implement editing at all, despite ActivityPub supporting it so my options are delete and repost or leave it)
What? Are you not on Lemmy?
No, I’m using lotide, another link aggregator altogether. It’s a lot leaner, especially on the front end.
And it also connects to Lemmy? Damn the fediverse is awesome.
The interoperability of different software really is amazing. One of the best parts of the fediverse imo.
interesting! I never heard before.
As for non server centric accounts, two potential solutions include using either custom domains (registered to the account owner, nor server owner), and/or cryptographic keys to identify an account. Nostr does both, and so does BlueSky I believe.
I imagine it like friend requests between communities: x@instance.a, all-about-x@instance.b and x-is-great@instance.c could send each other friend requests and merge into one federated meta-community about x. Then if one instance goes down the other two are still there to keep the meta-community alive, and if one goes rogue the others can just unfriend and keep going without it.
The nice thing about manual federation is that the communities don’t have to have exactly the same name, and the mods can keep malicious or troll communities out. And ofc you could still have client-side control if you want to, e.g. add or remove a community just for you locally, or create your own local meta-community.
vpzom, the dev of lotide pointed me to this fep from gnusocial that talks about the problem and proposes something similar to my first suggestion:
https://codeberg.org/fediverse/fep/src/branch/main/fep/2100/fep-2100.md
Just wanted to congratulate you for this really well thought out post.
I think that was resolved in https://getaether.net/, but unfortunately, development stalled and the lone maintainer isn’t active anymore. He only hosts the entry servers, but that’s it.
You could look at his solution, but honestly, fragmentation is part of federated networks. If it were distributed networks/P2P, like Aether, then fragmentation could possibly be much less of an issue as users would all be on the same network and posting to a community would send it to all peers, that hosts it for all others.