[Dans la RFC : Prise en charge d’ActivityPub – Phase 1, j’ai décrit un exercice d’idéation visant à évaluer l’intérêt commercial d’une prise en charge d’ActivityPub dans Discourse, et à envisager bien au-delà d’un MVP, comme si Discourse avait été conçu dès le départ avec la fédération en tête :
Je lance donc cette idéation avec un brainstorming, sans tenir compte des contraintes techniques actuelles liées à la base de code. Je suis conscient qu’il existe de nombreuses subtilités et cas limites dans tout cela. Voici une vision de ce à quoi pourrait ressembler une prise en charge native de la fédération. Voici ce que cela donne…
La communauté n’a pas de frontières
(Photo de Pixabay sur Pexels)
Nous partageons tous la même planète
en nous mêlant dans des structures sociales complexes. Pourquoi une communauté Discourse serait-elle limitée à un seul forum ?
Je suis administrateur de la Communauté Humane Tech (HTC), où nous couvrons un large éventail de sujets liés à la technologie, avec des (sous-)catégories comme « Liberté > Confidentialité », « Alignement > Éthique », « Alignement > Normes ». Peut-être trop large, et de nombreux autres forums Discourse existent qui se spécialisent dans ces catégories, et dans ce domaine, font mieux que nous. Mais pour les personnes intéressées par une vue d’ensemble de l’ensemble du domaine de la technologie humaine, ce positionnement large a du sens.
Fédération des catégories
Et si je pouvais fédérer notre sous-catégorie « Confidentialité » avec, par exemple, la sous-catégorie « Articles de blog » du forum PrivacyTools ? Peut-être uniquement pour synchroniser les sujets dans un seul sens — la sous-catégorie confidentialité de HTC ayant un périmètre plus large — où les sujets créés sur PrivacyTools apparaissent sur le forum HTC, et où nos membres peuvent interagir avec eux. Les messages des sujets sur le forum HTC sont ensuite renvoyés vers le sujet sur PrivacyTools, et vice versa. Les sujets des deux forums restent synchronisés. Peut-être même que je souhaite synchroniser dans un seul sens plusieurs sous-catégories de PrivacyTools vers « Confidentialité » sur HTC. Et pourquoi ne pas synchroniser de la même manière avec d’autres communautés liées à la confidentialité.
Autre exemple. Les forums Feneas et SocialHub partagent tous deux une catégorie de niveau supérieur « ActivityPub ». Il y a un chevauchement, des doublons, et des membres d’une communauté ignorants de ce qui se passe dans l’autre. C’est une opportunité où « ActivityPub » pourrait être candidat à une synchronisation bidirectionnelle, chaque forum contenant alors la même liste de sujets.
Fédération des tags et des sujets individuels
La même logique peut s’appliquer aux tags, où un tag particulier est configuré pour être fédéré. Cela pourrait être par exemple configuré de telle sorte que tout sujet portant le tag #specification sur SocialHub soit fédéré vers la sous-catégorie « Alignement > Normes » sur HTC.
Les sujets peuvent également être fédérés au cas par cas, déclenchés par une commande de la barre d’outils, où vous spécifiez le forum cible vers lequel fédérer, et peut-être aussi sélectionnez la catégorie distante sous laquelle le sujet doit apparaître (c’est-à-dire que la liste des catégories du forum est également fédérée pour la navigation distante).
Mentions de membres et consultations de profils
Lorsqu’un sujet est fédéré vers un autre forum, toutes les mentions qu’il contient doivent être adaptées pour refléter l’endroit où réside le membre. Mon identifiant @aschrijver sur HTC pourrait apparaître sous la forme @aschrijver@humanetech sur le forum SocialHub après synchronisation.
Puisque je suis également utilisateur sur SocialHub, je peux connecter mes comptes dans les paramètres de mon profil ; après vérification, cela signifie que dans les sujets synchronisés, mon identifiant local peut être affiché.
En cliquant sur un identifiant distant ou une avatar de membre, la carte de profil du forum distant s’affiche. En cliquant à nouveau pour voir le résumé du profil, il pourrait n’afficher que les métriques d’activité du forum local résultant des interactions sur les sujets synchronisés. Alternativement, et plus intéressant encore, il afficherait des résumés provenant de tous les forums connus faisant partie de la configuration de fédération. Par exemple, je pourrais alors découvrir que la réponse provient d’un membre très actif et expert sur l’autre forum.
Messages directs et notifications
Les messages privés (DM) seraient possibles sur tous les forums fédérés, pas seulement localement, en taguant/mentionnant le membre distant dans le DM. À part cela, il n’y aurait aucune différence dans la manière dont la communication par DM s’effectue. Cela fonctionne de la même manière que les DM locaux actuels.
De tout ce qui précède découle la nécessité de fédérer également les notifications. Si je réponds au message d’un membre distant, j’aime son message, ou je le mentionne dans un fil de sujet synchronisé, une notification d’interface utilisateur peut apparaître sur le forum distant pour informer le membre. Les notifications par e-mail sont également gérées par le forum distant. Cependant, si le membre a lié des comptes sur les deux forums, les notifications pourraient provenir du forum local où l’interaction a eu lieu en premier.
Authentification unique (SSO)
Notez que dans toutes les fonctionnalités décrites jusqu’ici, il n’est pas nécessaire d’avoir un SSO. Un membre distant n’a pas automatiquement un accès privilégié à un autre forum fédéré. Alors, que se passe-t-il s’il est mentionné dans un fil de sujet synchronisé dans un seul sens ? Dans ce cas, il recevra une notification d’interface utilisateur et un e-mail provenant de sa propre instance de forum, et en cliquant dessus, il sera redirigé vers l’autre forum (peut-être dans un nouvel onglet du navigateur) où il pourra simplement consulter le sujet. S’il souhaite répondre, il doit d’abord s’inscrire et lier ses comptes pour pouvoir le faire.
Notez que le SSO est une question délicate sur le Fediverse, pour laquelle aucune bonne solution n’existe encore. Mais pour la fédération Discourse-to-Discourse, la fonctionnalité SSO pourrait être beaucoup plus facile à mettre en œuvre. S’il y avait une intégration SSO, cliquer sur la notification pourrait ouvrir le sujet dans le contexte du forum actuel (comme une « vue distante »), et permettre au membre d’interagir avec lui de manière transparente.
Gestion de la fédération et complexité
Tout ce cas d’usage est décrit comme si Discourse avait été conçu dès le départ avec une prise en charge native de la fédération. Si tout cela est mis en œuvre, cela touche presque toutes les fonctionnalités du produit. Contrairement au cas d’usage à l’origine de ce fil — pour les flux personnalisés à la manière de Facebook —, la fédération ici est soigneusement gérée par le personnel du forum, et non selon le caprice de membres individuels.
Une grande partie de la configuration de la fédération est réservée aux administrateurs. Elle doit être faite de manière stratégique et avec un bon plan, afin de maintenir l’organisation de la communauté et le contenu intuitifs et logiques. La configuration de la fédération se construit progressivement au fil du temps dans le cadre du processus de construction de la communauté, et n’est pas quelque chose qui est ajouté au hasard.
Interopérabilité
Bien sûr, cette vision de la prise en charge d’ActivityPub ne doit pas être limitée à Discourse. Tout projet logiciel compatible pourrait faire partie du tissu communautaire distribué. Par exemple, le logiciel open source de construction de communauté forem et la plateforme de prise de décision collaborative loomio, vers lesquels je viens de diriger l’attention. Mais Discourse a l’opportunité de prendre la tête dans tout cela.
Intégration avec le Fediverse
Toute la prise en charge de la fédération décrite jusqu’ici était limitée au domaine métier du forum/communauté, mais avec l’intégration d’ActivityPub, l’interopérabilité peut maintenant s’étendre pour embrasser le plus large Fediverse, permettant de nombreux cas d’usage commerciaux excitants. En voici quelques-uns qui me viennent spontanément à l’esprit :
- Annoncer les publications du forum à l’échelle du Fediverse avec des toots sur les plateformes de microblogging Mastodon / Pleroma.
- Les images intégrées sont automatiquement téléchargées vers PixelFed et servies depuis là (idéal pour les communautés Blender par exemple).
- La barre d’outils date/heure permet de configurer un événement complet Mobilizon面向 le Fediverse, avec des fonctionnalités complètes de RSVP.
- L’intégration est bidirectionnelle, où les discussions Mobilizon sur l’événement sont en réalité des sujets Discourse.
- Créer des sujets PeerTube avec des fonctionnalités vidéo spéciales, où les messages constituent le fil de commentaires sur PeerTube.
- Votre sujet publié devient automatiquement un article de blog Writefreely plus un fil de commentaires.
- Intégrer des parties de votre forum dans Nextcloud en tant qu’application via sa prise en charge d’ActivityPub.
- Intégrer des fonctionnalités de podcast via Funkwhale (voir la récente vidéo sur le support du podcasting).
- Obtenir des informations de profil depuis Flockingbird, un réseau social professionnel en développement (un annuaire de type LinkedIn).
Et regardez le nombre croissant d’applications sur la liste de surveillance ActivityPub et laissez votre imagination vous guider ![]()
Conséquences
Oubliez un instant tous les obstacles et difficultés techniques et considérez ce que cela signifie pour Discourse en tant que produit. Ou plutôt, comme Discourse n’est plus « juste un produit » : Discourse est devenu un tissu communautaire distribué.
Le personnel du forum n’est plus seulement cela. Ils adopteront une perspective beaucoup plus large dans la construction de la communauté. Tant la communauté que son contenu existent à travers tout le tissu Discourse. Le personnel regardera activement d’autres instances Discourse, approchera leur personnel pour former des partenariats et créer des designs de fédération intéressants pour découper et organiser leur communauté et son contenu de manière à être le plus intéressant pour la base de membres.
Les membres de la communauté eux-mêmes sont également beaucoup mieux servis. Un contenu plus intéressant arrivera sur leur « portail » forum, et le forum sera plus actif que s’il s’agissait d’une simple chose locale. Les membres de la communauté pourront découvrir et interagir avec des membres d’autres instances de forum à travers tout le tissu. En fait, la frontière de la communauté a été supprimée : La communauté n’a pas de frontières.

