It feels like they’re two different roles. It might be better to have user-orientated servers that prioritise federation of content and only have a couple of meta-style communities, and other servers which prioritise being the go-to place for discussion on a particular topic and less a place that manages a large number of user accounts.
It just seems like two really distinct roles all servers are trying to do at the same time, and it’s leading to larger sites with a lot of users duplicating all the same subs, rather than there being any particular spot for certain types of discussion.
It also means the server hosting a particular type of discussion might defed certain instances to prevent trolling when it’s a sensitive topic, but it wouldn’t affect a large userbase who have that as their home server, it would only be moderating the discussion for the content areas they specialise in.
Thoughts?
Currently there are (is?) content-only servers like https://lemmit.online/ .
I have been thinking perhaps the idea can be carried further and we can separate the user-facing front end and the back end.
Imagine having multiple front end servers (e.g. fe1.site, fe2.site, … fe5.site) all connecting to the same user database and the same back end server which serves the communities and contents etc (call it be.site for example). A user signs up once and can login to any front end server with the same account, create a community /c/whatever on e.g. fe3 and it will be accessible automatically on fe1-fe5.
This is in addition to the back end federating with outside servers. Outside sees the community as be.site/c/whatever and users there as be.site/u/whoever. (or maybe make an alias like www.site/c/whatever www.site/u/whoever).
Additional front end servers can be added to spread the load if there are many users. If done right the users shouldn’t even need to choose (or be aware of) which front end server they log on to, it can be automatically load-balanced. Another idea would be that special front end servers can be created to only serve API calls for apps.
I’m not sure if this will have bottleneck somewhere else, but I think this is an interesting idea to explore.
interesting - sounds like this would be a more in depth solution, but the ideas are really good.