In ActivityPub-Support: Phase 1 RFC habe ich eine Ideenfindungsübung skizziert, um den Geschäftsfall für die Unterstützung von ActivityPub in Discourse zu bewerten und über einen MVP hinauszudenken – so, als wäre Discourse von Grund auf mit dem Gedanken an Föderation entwickelt worden:
Daher starte ich hiermit die Ideenfindung mit einigem Brainstorming, ohne dabei technische praktische Aspekte des aktuellen Codebases zu berücksichtigen. Mir ist bewusst, dass es bei all dem viele Feinheiten und Randfälle gibt. Dies ist eine Vision dafür, wie native Föderationsunterstützung aussehen könnte. Hier geht’s los..
Die Gemeinschaft hat keine Grenzen
(Foto von Pixabay über Pexels)
Wir alle teilen einen Planeten
und vermischen uns in komplexen sozialen Strukturen. Warum ist eine Discourse-Gemeinschaft auf ein einzelnes Forum beschränkt?
Ich bin Admin der Humane Tech Community (HTC), und wir decken ein breites Spektrum an technikbezogenen Themenbereichen ab, mit (Unter-)Kategorien wie „Freiheit > Privatsphäre“, „Ausrichtung > Ethik“, „Ausrichtung > Standards“. Vielleicht zu breit, und es gibt viele andere Discourse-Foren, die sich auf diese Kategorien spezialisieren und in diesem Bereich besser abschneiden als wir. Aber für Menschen, die einen Überblick über das gesamte Feld der humanen Technologie erhalten möchten, macht die breite Positionierung Sinn.
Föderation von Kategorien
Was wäre, wenn ich unsere Unterkategorie „Privatsphäre“ mit z. B. der Unterkategorie „Blogbeiträge“ des Forums PrivacyTools föderieren könnte? Vielleicht nur in eine Richtung synchronisieren – da die Privatsphäre-Unterkategorie von HTC breiter gefasst ist – wobei Themen, die bei PrivacyTools erstellt werden, im HTC-Forum erscheinen und unsere Mitglieder damit interagieren können. Themenbeiträge im HTC-Forum werden dann zurück zum Thema bei PrivacyTools übertragen und umgekehrt. Die Themen auf beiden Foren bleiben synchronisiert. Vielleicht möchte ich sogar mehrere PrivacyTools-Unterkategorien einseitig mit „Privatsphäre“ bei HTC synchronisieren. Und warum nicht auf ähnliche Weise mit verschiedenen privatsphärenbezogenen Communities synchronisieren?
Ein weiteres Beispiel. Sowohl Feneas als auch SocialHub teilen eine übergeordnete Kategorie „ActivityPub“. Es gibt Überschneidungen, Duplikate, Mitglieder der einen Community sind sich nicht bewusst, was in der anderen Community passiert. Dies ist eine Chance, bei der „ActivityPub“ ein Kandidat für eine bidirektionale Synchronisation ist, wobei jedes Forum dann dieselbe Themenliste enthält.
Föderation von Tags und einzelnen Themen
Das Gleiche gilt für Tags, bei denen ein bestimmter Tag so konfiguriert werden kann, dass er föderiert wird. Dies könnte z. B. so eingerichtet sein, dass jedes Thema mit dem Tag #specification in SocialHub zur Unterkategorie „Ausrichtung > Standards“ auf HTC föderiert wird.
Themen können auch fallweise föderiert werden, ausgelöst durch einen Befehl in der Symbolleiste, bei dem Sie das Ziel-Forum angeben, zu dem föderiert werden soll, und möglicherweise auch die entfernte Kategorie auswählen, unter der das Thema erscheinen soll (d. h. die Foren-Kategorieliste wird auch für die Fernbrowsing föderiert).
Erwähnungen von Mitgliedern und Profilansichten
Wenn ein Thema zu einem anderen Forum föderiert wird, müssen alle darin enthaltenen Erwähnungen angepasst werden, um widerzuspiegeln, wo das Mitglied ansässig ist. Mein Handle @aschrijver bei HTC könnte auf dem SocialHub-Forum nach der Synchronisierung als @aschrijver@humanetech erscheinen.
Da ich auch ein Benutzer auf SocialHub bin, könnte ich in meinen Profileinstellungen die Konten verbinden, und nach einer Verifizierung bedeutet dies, dass mein lokales Konto-Handle in den synchronisierten Themen angezeigt werden kann.
Beim Klicken auf einen entfernten Handle oder ein entferntes Avatar wird die Profilkarte des entfernten Forums angezeigt. Beim erneuten Klicken zur Anzeige der Profilzusammenfassung werden möglicherweise nur die Aktivitätsmetriken auf dem lokalen Forum angezeigt, die aus der Interaktion mit synchronisierten Themen resultieren. Alternativ – und interessanter – würde sie Zusammenfassungen aus allen bekannten Foren anzeigen, die Teil der Föderationskonfiguration sind. So könnte ich beispielsweise feststellen, dass die Antwort von einem sehr aktiven, erfahrenen Mitglied auf dem anderen Forum stammt.
Direktnachrichten und Benachrichtigungen
DMs wären über alle föderierten Foren hinweg möglich, nicht nur lokal, indem das entfernte Mitglied in der DM getaggt/erwähnt wird. Ansonsten gibt es keinen Unterschied in der Art und Weise, wie DM-Kommunikation stattfindet. Es funktioniert genauso wie aktuelle DMs, die nur lokal sind.
Aus all den oben beschriebenen Föderationsfunktionen ergibt sich die Notwendigkeit, auch Benachrichtigungen zu föderieren. Wenn ich auf einen Beitrag eines entfernten Mitglieds antworte, seinen Beitrag liken oder ihn in einem synchronisierten Themen-Thread erwähne, kann eine UI-Benachrichtigung im entfernten Forum erscheinen, um das Mitglied zu informieren. E-Mail-Benachrichtigungen werden ebenfalls vom entfernten Forum behandelt. Wenn das Mitglied jedoch auf beiden Foren verknüpfte Konten hat, können die Benachrichtigungen vom lokalen Forum stammen, in dem die Interaktion zuerst stattfand.
Single Sign-On
Beachten Sie, dass für alle bisher beschriebenen Funktionen kein SSO erforderlich ist. Ein entferntes Mitglied hat keinen automatischen privilegierten Zugriff auf ein anderes föderiertes Forum. Was ist also, wenn sie in einem einseitig synchronisierten Themen-Thread erwähnt werden? In diesem Fall erhalten sie eine UI-Benachrichtigung und eine E-Mail von ihrer eigenen Forum-Instanz, und beim Klicken werden sie zu dem anderen Forum geleitet (möglicherweise in einem neuen Browser-Tab), wo sie das Thema einfach ansehen können. Wenn sie antworten möchten, müssen sie sich zunächst anmelden und Konten verknüpfen, um antworten zu können.
Beachten Sie, dass SSO im Fediverse eine schwierige Sache ist, für die es noch keine gute Lösung gibt. Für die Föderation von Discourse zu Discourse könnte die SSO-Funktion jedoch viel einfacher zu implementieren sein. Wenn es eine SSO-Integration gäbe, könnte beim Klicken auf die Benachrichtigung das Thema im Kontext innerhalb des aktuellen Forums (als „Entfernte Ansicht“) geöffnet werden, und das Mitglied könnte nahtlos damit interagieren.
Föderationsmanagement und Komplexität
Dieser gesamte Anwendungsfall wird so beschrieben, als wäre Discourse von Grund auf mit integrierter Föderationsunterstützung entwickelt worden. Wenn all dies implementiert wird, berührt es nahezu alle Funktionen des Produkts. Im Gegensatz zum Anwendungsfall, der diesen Thread gestartet hat – für FB-ähnliche personalisierte Feeds – wird die Föderation hier sorgfältig vom Forenpersonal verwaltet, nicht nach dem Willen einzelner Mitglieder.
Ein Großteil der Föderationskonfiguration ist ausschließlich für Administratoren bestimmt. Sie sollte strategisch und mit einem guten Plan durchgeführt werden, um die Community-Organisation und den Inhalt intuitiv und logisch zu halten. Das Föderations-Setup wird schrittweise im Rahmen des Community-Aufbau-Workflows aufgebaut, nicht etwas, das einfach so hinzugefügt wird.
Interoperabilität
Natürlich muss diese Vision der ActivityPub-Unterstützung nicht auf Discourse beschränkt sein. Jedes kompatible Softwareprojekt könnte Teil des verteilten Community-Gefüges werden. Zum Beispiel die Open-Source-Community-Building-Software forem und die kollaborative Entscheidungsfindungsplattform loomio, auf die ich gerade in Richtung dieses Beitrags verwiesen habe. Aber Discourse hat die Chance, in all dem die Führung zu übernehmen.
Fediverse-Integration
Bisher war die gesamte Föderationsunterstützung auf den Geschäfts- bzw. Community-Bereich beschränkt, aber mit der ActivityPub-Integration kann die Interoperabilität nun das breitere Fediverse umfassen und zahlreiche spannende Geschäftsfälle ermöglichen. Hier nur einige, die mir spontan einfallen:
- Ankündigung von Forenbeiträgen im gesamten Fediverse mit Toots auf den Microblogging-Plattformen Mastodon / Pleroma.
- Eingebettete Bilder werden automatisch auf PixelFed hochgeladen und von dort bereitgestellt (schön z. B. für Blender-Communities).
- Die Datum/Uhrzeit-Symbolleiste ermöglicht die Einrichtung einer vollständigen Mobilizon-Veranstaltung für das Fediverse mit vollständigen RSVP-Funktionen.
- Die Integration ist zweiseitig aktiviert, wobei Mobilizon-Diskussionen zur Veranstaltung tatsächlich Discourse-Themen sind.
- Erstellen von PeerTube-Themen mit speziellen Videofunktionen, wobei die Beiträge der Kommentar-Thread bei PeerTube sind.
- Ihr veröffentlichtes Thema wird automatisch zu einem Writefreely-Blogbeitrag plus Kommentar-Thread.
- Einbetten von Teilen Ihres Forums in Nextcloud als App über dessen ActivityPub-Unterstützung.
- Integration von Podcast-Funktionen über Funkwhale (siehe jüngstes Video über Podcast-Unterstützung).
- Abrufen von Profilinformationen von Flockingbird, einem professionellen sozialen Netzwerk in Entwicklung (LinkedIn-ähnliches Telefonbuch).
Und schauen Sie sich die ständig wachsende Anzahl von Apps auf der ActivityPub Watchlist an und lassen Sie sich von Ihrer Fantasie leiten ![]()
Konsequenzen
Vergessen Sie für einen Moment alle technischen Hürden und Hindernisse und überlegen Sie, was dies für Discourse als Produkt bedeutet. Oder vielmehr: Da Discourse nicht länger „nur ein Produkt“ ist: Discourse ist zu einem verteilten Community-Gefüge geworden.
Forenpersonal ist nicht mehr nur das. Sie übernehmen eine viel breitere Perspektive beim Community-Aufbau. Sowohl die Community als auch der Community-Inhalt existieren überall im Discourse-Gefüge. Das Personal wird aktiv andere Discourse-Instanzen beobachten, deren Personal ansprechen, um Partnerschaften zu schmieden und interessante Föderationsdesigns zu erstellen, um ihre Community-Organisation und ihren Inhalt so zu zerteilen und zu kombinieren, dass sie für die Community-Mitglieder am interessantesten sind.
Die Community-Mitglieder selbst werden ebenfalls viel besser bedient. Interessantere Inhalte fließen zu ihrem Forum „Portal“, und das Forum ist aktiver, als wenn es nur eine lokale Sache wäre. Community-Mitglieder können Mitglieder anderer Forum-Instanzen im gesamten Gefüge entdecken und mit ihnen interagieren. Tatsächlich wurde die Community-Grenze entfernt: Die Gemeinschaft hat keine Grenzen.

