Federation support for Discourse

The mail goal of this feature is to connect all the Discourse communities like how Mastodon makes use of global and local feeds to maintain a healthy and decentralized network of Mastodon instances which allows a user from one instance to connect, follow, and discuss on topics of another instance. I think this will open up a lot of new features for Discourse.

The benefit

  • Imagine being able to just connect to your own local community and then be able to get news about other topics from other Discourse communities you followed elsewhere!
  • You no longer have to create an account in every Discourse community because you can always subscribe and comment on topics in those communities!
  • It structurally decentralizes all the communities while at the same time connecting everyone!

Things to note?

  • An instance owner has the ability to block certain people from other communities from interacting with their community.
  • They also have the right to choose the community to be private or that the content of the community can only be shared to a particular group of communities.

I have not really thought about the cons of this feature but do let me know what you think about this feature!

24 Likes

These three aren’t actually a benefit over what Discourse already has today. In fact, it makes the first two harder to do – there’s a lot of trust in the account server operators involved with private sites.

3 Likes

Is there any web-federated system at scale that has actually worked, become popular, and is actively in use? I think this is an inordinately hard problem.

I’m unclear how viable Mastodon is in terms of it being a real competitor to a massively centralized service like Twitter – as I understand it, Mastodon is a Twitter clone, but decentralized?

4 Likes

From what I have seen, there are a couple of federated systems like Mastodon and Matrix. These are pretty active places and also have bridges to other platforms (IRC, twitter etc). Mastodon is not really a competitor, it’s main purpose was to provide a decentralized twitter where every community is governed by it’s own rules.
Matrix implements it’s own protocol to make federation system possible, I think Mastodon does the same.

There is a protocol that’s still actively being developed by W3C called “Activity Pub”
https://www.w3.org/TR/activitypub/

5 Likes

Oh well this is not a benefit, sorry. I meant that if I owned a discourse instance and other people from other discourse communities are also able to discuss about topics in my community, I am able to define rules on how others interact with my community’s topics. It should be as simple as blocking or banning a user on my instance. But that doesn’t mean that the user is not able to participate in other discourse forums.

It’s not a benefit, I agree, this feature is already partially implemented in Discourse (to make it private etc) I guess what can be implemented if a federation exists is the ability to give the owner to choose which communities are allowed and which are not. I haven’t really thought of it.

Hold on let me make some edits :joy:

IRC and email are, I’m pretty sure, the only two that are used outside of an ideological niche.

IRC was properly decentralised very early on, but due to spam, attacks, takeovers, etc. it evolved into a handful of seperate, closed, networks (efnet, freenode, etc.). These days it’s been mostly replaced with fully centralised services.

Likewise, email was completely decentralised but over time (and for similar reasons) it has become very centralised to just a few large providers (i.e. Gmail, Outlook, Yahoo, and sending services like Mailgun and MailChimp). And while running your own mail server is still possible it requires frequent upkeep and configuration to ensure all those large providers keep accepting your mail.

I suppose you could also include BitTorrent and DHT as well, they are decentralised and seem to work fairly well, though it can and has been flooded with fake peers and requests in the past.

As far as I know, new decentralised services like Mastodon and Matrix are yet to run into and deal with those problems (I’m happy to be shown otherwise).

9 Likes

Discussed at length before, allow me (and note these have embedded related topics too, enjoy :slight_smile: )

http://opensym.lero.ie/wp-content/uploads/2017/08/a8-silva.pdf

17 Likes

Awesome! Great addition! I did not even think about Email and IRC! ha! and yes, even torrents are mostly decentralized and peer to peer.

Another good example is the Onion network. It is also pretty much a peer to peer decentralized platform!

Another federation example in the wild is a Nextcloud-style federation for file shares. I’m sure the software’s support could be extended further as well.

4 Likes

I never knew that was actually around! :open_mouth: Seems great!

Email is still self-hosted by tens or hundreds of thousands of companies around the world. Most ISPs provide their own mail server to their users too. So maybe email is less decentralized than before, but it’s in no way become centralized.

4 Likes

Here is a nice explainer

I still think this is so intrinsically hard and so difficult to get working at scale that I feel anyone taking this on is falling into a kind of Xanadu trap — the more effort you spend traveling toward it, the farther away the goal gets.

6 Likes

I beat this drum a long time ago. The point made regarding a plurality of identical names across disparate CDCK Forum instances could be possibly be addressed with an Alias Table. Not a literal SQL Alias Table but a Reference Table of Alias. My actual concern about that is in creating a central repository that just shouts “Come, hack me!” Hence my curiosity about the creation of an Open Source ie FSF Blockchain SSO that possibly works in conjunction with Let’s Encrypt. I’m researching this for use within an envisioned Discourse-based Fediverse exclusive to constituents of the APFU|CC™, a Federation Union of Worker-Owned Cooperatives.

I am trying to discern the feasibility of creating a HIPAA/NOPP Compliant Personal Roaming Profile Registry that can eventually pass regulatory muster.

Initial trial use within the aforementioned federated network of Discourse forum communities, with a curated suite of like platform applications introduced beginning with Rocket Chat, for Slack-like Real-Time Communications complementary to the long-form format of Discourse.

The goal is to use a variant of participatory action research and design thinking with stakeholders to programmatically develop this proposed ecosystem, specifically addressing the needs of agnostic portability across a broad spectrum of transactional contexts requiring Authentication, Authorization, and Accounting, with Secure Transport vis-Ă -vis Diameter-based Protocol, de rigueur.

On several occasions, the concept of a Blockchain SSO would creep into my thoughts.

That was so long ago that I was certain someone already was doing it, and was proved entirely correct in that assumption on discovering Civic has a Blockchain SSO product.

This proposal would require a time-series variant of Postgres DB SQL, TimescaleDB for example because everything I am doing revolves around mobility in real time.

I would appreciate commentary by any DB Engineers in the Meta-Discourse family about installing Discourse on the TimescaleDB.

Hope that makes sense to you. If not, ask me.

4 Likes

I’d like to +1 the idea of implementing ActivityPub in Discourse. Initially, it could be a plug-in, like the Pterotype plug-in for WordPress, so those Discourse communities who want to experiment with it can do that. The results of those experiments could inform discussions about whether to make it a core feature.

In order to post this comment, I had to set up a new account here and use email or a datafarm (GH, gOgle, Titter etc) to confirm my email address. Even though I’ve been a good citizen on many Discourse forums over the years, I’m treated by this system as a first-time Discourse user (handholding UI, limits on links in comments etc).

Some of the potential benefits of federated Discourse:

  • once I have an account on one Discourse forum, that could be my posting identity on any other (unless I want a separation of concerns). I don’t need to create a new account (and profile etc) for every forum I want to post in.
  • my posting reputation can be aggregated across all the federated Discourse instances I post in. This is useful information for locals when I start posting on a new instance, whether I’m a good citizen, and bad one, or a vanilla one. It also means each new forum can recognize my Discourse experience level, and If I’m a good lad, I don’t have to start from scratch with posting permissions every time.
  • Discourse can use other Discourse instances in the federation as third-party identity providers, instead of advertising corporate datafarms on the login page

@codinghorror

Is there any web-federated system at scale that has actually worked, become popular, and is actively in use?

There’s a growing number of federated web apps, see the curated lists at fediverse.party. One instance monitoring site has data for nearly 3 million user accounts across all the federated web apps, of which about half were used to post something in the last 6 months, and about 500,000 in the last month. Many others may be lurkers who are reading but not posting.

So far, most are micro-blogging apps like Mastodon. But there are also apps for video-sharing (PeerTube), photo-sharing (PixelFed), blogs (write.as, Plume, and the Pterotype plug-in for WordPress), events (Mobilizon), pastebin (Distbin), and more. Thanks to standards like ActivityPub (also the Diaspora protocols and Zot), not only do they all federate within instances of their own software, but they can also federate with instances of other software using the same federation standards.

If anyone is interested in working on an AP plug-in for Discourse and looking for guidance, there is a Discourse forum at socialhub.network where developers from different projects compare notes about implementations, discuss ways to improve inter-operation and UX across instances and apps, and share related news.

12 Likes

It must be noted that Discourse ActivityPub development is going to be supported by the NGI0 EU funding scheme. There’s a related topic at ActivityPub Implementation for Discourse that should be reopened for interested people since nothing is sure yet about how this will play.

I would be very glad to open a dedicated space to discuss this plugin development on https://socialhub.network.

6 Likes

+1 for enabling federation in Discourse. 1st step would supporting the WebFinger protocol as per:

2 Likes

Very interesting. Where did this get to?

Is there a functional spec? To me this has to start with the user experience and drill into the technology.

1 Like

Isn’t it fair to say some of this problem is solved by the Discourse App?

It’s an aggregator at the notification level and persists connections/credentials to multiple Discourse sites.

I wonder if the practical solution to this isn’t just enhancing the Discourse App to show a feed?

Another thing to note is that a smart email folder might give you a similar feed.

Perhaps I’m very off base …

2 Likes

I would love to have federation support in Discourse, especially after seeing the follow plugin that @angus created:

It would be great to open meta.discourse.org and see my Socialhub notifications; also get a list of new posts by Socialhub users I’m following, and see bookmarked Socialhub categories right here.

2 Likes

Before we can re-open that topic, I think the community should decide on functional spec here that someone could get started with.

As the term “ActivityPub Implementation for Discourse” is extremely broad, the team strongly believes that we should keep this simple and start small.


@Falco had an interesting proposal on these lines, any thoughts?

16 Likes