Separating forums/contents/community-servers from user-servers
Posted by digikar@reddit | RedditAlternatives | View on Reddit | 11 comments
I have wanted to switch/engage more with Lemmy. But everytime I realize the fragementation of its channels - both in principle and practice - I keep being put off. Should I follow programming@programming.dev or programming@lemmy.ml or somewhere else? And yes, there probably are ways to follow multiple of them, and for channels to cross-post to each other, but all these seem like band-aids for an underlying problem.
I have been wondering if there might be a way to prevent the fragementation in principle. Essentially, we want to avoid duplicating channels. As I understand, the essential reason duplicate channels arise is because the creators (people who start the duplicate channel) probably did not know about an earlier existing channel. But now, suppose the creators do discover they have a duplicate channel, they cannot simply delete the existing channel because they have users who rely on the duplicated channel. I'm unsure if there is a way to merge channels without merging entire communities / lemmy-servers.
Moreover, to post or comment on a channel you found elsewhere on the web, you require to open it in the lemmy instance you are a user of, and then do. Or, you end up having to create multiple accounts across different lemmy instances.
It seems there is a conflation of three concepts lumped into "community" that leads to this inelegance:
- Lemmy instances
- Channels
- Users
As I understand, a community is not "users on a particular lemmy instance". But rather "users that follow a particular channel". In other words, channels should then be the core around which a federated system should be built. If channel admins find they are duplicates of each other, they can directly decide to merge their databases -- there's nothing above channels.
But different duplicate channels will merge in different ways. programming might merge in one manner. worldnews might merge in another manner. This poses a problem if the users are tied to the servers the channels are on. The solution then is to separate users from channels altogether.
Users live on user-servers. These are used for (i) authentication (ii) maintaining a federated identity for the user with their post and comment history across different channels. Channels live on channel-servers. These use user servers for authentication -- of which there could indeed be multiple.
I wonder if anyone knows anything that already implements this. I can imagine a simple forum software paired with an user-authentication software is all that'd be required. But if someone has tried and tested it out, I'd be happy to know.
batvseba@reddit
don't be lazy, use some effort.
threelonmusketeers@reddit
If you haven't seen them already, I think this blogpost and this Lemmy thread might be of interest to you.
digikar@reddit (OP)
Indeed, I wanted to know about other efforts towards solving this problem! Thanks for pointing to the posts.
Community following is close. The main issue that comes to my mind is either data duplication or user-profile fragmentation. What happens to the data of the two communities when they follow each other? (Not sure if I missed this in the discussions above; let me know if I did!)
Both communities sync their data with each other. That's okay if there were 2 or 3 communities. But as another user pointed out, there can be even be 78 programming communities(!). Duplicating data 78 times seems absurd and a waste of resources.
Suppose the data never duplicates, but the posts are dynamically fetched from different instances. That looks good at first sight. But what happens when a user makes a post or comments?
threelonmusketeers@reddit
Glad to know that other people are interested in this!
I agree that this would be a waste, but as I understand it, neither Proposal 2 (multi-communities) or Proposal 3 (communities following each other) necessitates an increase in data duplication beyond what Lemmy does currently. They are (mostly) just UI and database changes.
The way Lemmy currently works, whenever someone subscribes to a community from a remote instance, this triggers the two instances to sync posts and comments in that community to each other. As a result, the number of copies of the data stored across the fediverse is equal to the number of instances which have at least one subscriber to that community.
Multi-communities (Proposal 2): This is just a shortcut for users to easily subscribe to multiple communities at once, and have the posts appear in a single feed. The feed wouldn't need to store additional copies of each post and comment, just a list of communities to display posts from. This isn't any more data duplication than if a user were to subscribe to each community manually.
Communities-following-communities (Proposal 3): If two communities on the same instance follow each other, only one copy of each post would be stored the instance, it would just appear in the feeds of both communities. If two communities on different instances follow each other, a copy of each post would be stored each instance. This is no more data duplication than we currently have, where a user from each instance manually follows both communities.
Lastly, a few notes:
For the list of 78 programming communities, they would not all follow each other. For example, it wouldn't make sense for
!JavaScript@programming.dev
to follow!Python@sh.itjust.works
. Community following would likely only happen in cases like!Python@programming.dev
and!Python@sh.itjust.works
.The way Lemmy currently works, S2 and S3 still have local copies of their comments, but any edits won't be federated to the rest of the 'verse. I don't think either Proposal 2 or Proposal 3.
triangularRectum420@reddit
PieFed fixes this with topics (essentially admin-defined multireddits) and feeds (essentially user-defined multireddits).
As an example, ~50501@piefed.social is a feed containing 69 (heh) communities related to US protest. That way, you don't have to individually follow each community. Also, if any new community emerges, you'll be automatically subscribed to it when the feed's creator adds it to the feed!
PieFed is also federated, so you can interact with the Lemmyverse from it as well.
dandylover1@reddit
Will this work with an Akkoma or Friendica account, or do I need to create a separate one?
digikar@reddit (OP)
Wait, what happens when piefed.world piefed.ml piefed.jazz etc come up? Will they duplicate feeds, say piefed.world might have a programming feed of 38 communities, and then .world has 96, etc.
triangularRectum420@reddit
Feeds are federated. Also, only the creator of feeds can modify them, although it is easy to make your own version of the feed that you can then change as you wish.
kdjfsk@reddit
I think the big key you are missing is channel creators/mods are power hungrybasement dwellers, so do not want to combine their programming channel with another existing one if they discover. Hell, they will start their own channel of something they already know exists because they just dont like the other creator, or disagreed about any tiny thing...or just because THEY want to be more special.
Altruistic decision making for the overall good of a social community rarely, if ever, falls into their train of thought, and if the decision means giving up their empire of dirt, they arent going to do it, its a non starter.
Dont depends on any kind of admin, moderator, or creator to do what users want. Just let the users do what the users want. Its fine if there are ten different programming channels, so long as each user can decide which ones they want to follow themselves and can just easily click to do that.
digikar@reddit (OP)
Oh, that's a very interesting point! I have almost never came across such people IRL -- probably just end up ignoring them I think? But them being basement dwellers might also be a reason :P
Even though, most mods and admin people I have come across have been good, I'd guess they are in a minority?
But this definitely makes things less reassuring. If a internet user randomly stumbles upon one instance of a programming channel through their browsing, they'd probably never find out the other programming channels unless there was collaboration at the level of mods or admins. You can't exactly use automation in the general case because same words can mean different things in different languages, heck even the same language in different contexts :').
YourCompanyHere@reddit
The hammer of online communities that solves every (nail) conflict between mods and users with “you don’t like it? Make your own” is the real problem as you pointed