Note: in hindsight, half of this post is answering my own questions as I explore this rarer side of federation, but there are still some remaining questions which I have highlighted.
Introduction
This post is created on lemmy.ml. The benefits of federating this post to other Lemmy instances is immediately obvious, since they can use most or all of the site features to read it as intended and interact (voting, replying, reporting, saving, cross-posting or browsing and subscribing to fediverse@lemmy.ml).
There is also intuitive benefit in being able to federate with other link aggregators such as lotide and Prismo instances. All these sites have the same basic interface of link-posting, text-posting, voting, commenting and voting on comments. The base format is very compatible, even if extra features are not. I wouldn’t be surprised if Lemmy and lotide form a dynamic similar to Mastodon and Pleroma, two microblogging services which again have an intuitive base compatibility.
But what about different types?
What are the benefits of, for example, making Lemmy federate with Mastodon, Friendica or PeerTube?
One approach to answering that is asking what cross-interaction is already possible, like some posts in !feditolemmy which were posted from Friendica. This nerdica.net post which is also replicated on !fediverse shows a conversation in replies between a few Lemmy instances and a Friendica account, and demonstrates the clear analogue of our communities and their forums, and of our votes and their likes (it’s just a test ;) )
So Friendica posts federating to Lemmy makes reasonable sense. I’m not sure about the opposite. I guess their posts are analogous to our text posts or text & link posts, so it might be possible to render their forums as browsable communities here.
Question 1: Does my Lemmy account browsing and making new posts on Friendica forums make sense? Or will the federation only make sense for enabling Lemmy to aggregate Friendica posts and allowing cross-rating and cross-commenting?
Note: I found this Friendica forum on Lemmy, which was properly interpreted as a community instead of a user by Lemmy, but posts aren’t replicating yet. I’m guessing it’s a base for future completion to allow further cross-integration. Friendica does not appear to be able to browse Lemmy users or communities yet.
I also assume microblogging sites like Mastodon and Pleroma, along with the Prismo link aggregator, can use hashtags as an analogy for communities. While a post on those sites can belong to multiple tags, Lemmy can imitate this with crossposting in multiple communities. Is this reasonable?
PeerTube is where I get more confused, and I’m not alone. As a reply there mentioned, we can view a PeerTube user account, such as https://lemmy.ml/u/thelinuxexperiment@tilvids.com and https://lemmy.ml/c/h3h3productions@h3h3.club , although it doesn’t seem to work for framatube.org.
However the interfaces of Lemmy and PeerTube are radically different, as PeerTube is foremost a video hosting site and Lemmy is a link aggregator. I think it’s fair to assert that a Lemmy post cannot be displayed on a PeerTube instance without hacks no-one wants, which leaves PeerTube->Lemmy posting, and mutual liking/commenting/reporting/etc… A PeerTube video can be adapted as a link post in Lemmy. I’m not certain how a PeerTube upload would signal which communities it should be posted to in Lemmy, but there are reasonable options like an extra field in the upload settings, or a link in the description.
Question 2: Is there a plan to have anything more than PeerTube creating link posts in Lemmy communities with federation between comment sections?
Trying to learn the current situation in order to ask good questions has taught me a lot, I was in a mindset that we had to be able to make posts on other sites in order to usefully federate, when that isn’t really our role as a link aggregator site. Media sites can usefully post to here with federated voting and comment sections.
The many fediverse apps out there really are fundamentally compatible. The primary difference is UX and not so much how a post could be interacted with (although more complex operations can be done with e.g. forgefed)
So really this makes them more suited to be AP Clients rather than Servers.
I think SOLID is an interesting approach to this. And AFAIK their inbox API is AP compatible.
While SOLID focuses mainly on data storage, there is another approach that I think is better which focus on Author Origination. Even if foreign software creates the object or an interaction description, it is signed and disseminated via an author controlled platform, and not by the site/software that turns UX input into an object or interaction with an object. Thus retaining all the benefits of SaaS without giving up data sovereignty nor identity sovereignty.
I like to look at the potential of the Fediverse in terms of what the open interoperability standards (notably ActivityStreams and ActivityPub) and their Linked Data extensibility could bring. Then it helps to think in terms of ‘business domains’ i.e. particular areas of expertise that software is targeted to.
Right now the Fediverse is mostly offering features in a Microblogging domain. There’s so much focus on this that we come to think of ‘adding federation support’ as adding timelines, comments, boosts, likes, etc. But with Linked Data there is no restriction as to what application types - i.e. apps targeting different business domains - we could potentially integrate with.
Forgefed is a good example of this. Although in terms of ‘business domains’ it is not sliced optimally, imho. What forgefed tries to do is create a common denominator for Code Forges to interoperate. But code forges aren’t a domain (or rather it is an application domain, not a business domain). You won’t find a Code Forge Manager as a domain expert. A code forge is just a tool to help with Software Development, and this is the top-level domain. A breakdown into sub-domain may give you Revision Control, Quality Assurance, Project Management, etc.
Consider Github. It has established a dominant position in the developer landscape. 1,000’s of companies and FOSS projects deliver stuff that builds upon Github API’s, trying to add some additional value. With open standard domain-specific extensions all that will be democratized. And there would be possibilities to mix, match, reuse that do not exist now. Take Project Boards for instance. Github and Trello… they mostly overlap in their feature set. You choose one or the other. But were they federated based on the same vocabulary definitions, they might use the exact same data to render their UX. Now a Trello user can seamlessly interact with a Github user from their project board.
Note that in the case of ForgeFed I am a proponent to broaden this initiative into defining, what I call, the Free Software Development Lifecycle or FSDL.
Were the Fediverse to evolve along a domain-driven approach to creating interoperable extensions then a lot of power would be unleashed, that now is still dormant. I feel that here is the “unique selling point” that will allow Fediverse to start competing against the proprietary walled gardens that are all around us. If the ecosystem evolved like this, then more and more it will create its own network effects across a wide variety of different fields.
This is just some random example of where fedi could be going towards. But there’s a long way to go before we can get there. We have to tackle some real challenges first.
There are different limitation in ways you can interact depending on the server you are using. For example:
- if you are on Lemmy, you cannot follow other users or being followed
- if you are on Mastodon, you cannot downvote or quote-share
So, while the situation where these are just clients for a generic AP server can be argued to be desirable, this is not how it works at the moment