在 ActivityPub 支持:第一阶段 RFC 中,我概述了一项构思练习,旨在评估在 Discourse 中引入 ActivityPub 支持的商业案例,并超越最小可行产品(MVP)的局限,设想如果 Discourse 从一开始就是基于联邦理念构建的会是什么样子:
因此,我将在此启动构思过程,进行一些头脑风暴,暂不考虑当前代码库的技术现实性。我意识到这其中存在许多细节和边缘情况。这是对原生联邦支持可能呈现样貌的一种愿景。让我们开始……
社区无边界
(照片来源:Pixabay,来自 Pexels)
我们共同生活在一个星球上;) 在复杂的社会结构中交织。为什么 Discourse 社区要局限于单个论坛?
我是 Humane Tech Community (HTC) 的管理员,我们涵盖了广泛的技术相关主题领域,设有「自由 > 隐私」、「对齐 > 伦理」、「对齐 > 标准」等(子)类别。也许范围太广了,确实存在许多其他专门针对这些类别的 Discourse 论坛,并在该领域做得比我们更好。但对于想要了解_整个_人道技术领域概况的人来说,这种广泛的定位是有意义的。
联邦化类别
如果我能将我们的「隐私」子类别与例如 PrivacyTools 论坛的「博客文章」子类别进行联邦化呢?也许仅单向同步主题——因为 HTC 的隐私子类别范围更广——即 PrivacyTools 上创建的主题会出现在 HTC 论坛上,我们的成员可以与之互动。HTC 论坛上的主题帖子随后会传回 PrivacyTools 的对应主题,反之亦然。两个论坛上的主题将保持同步。甚至可能希望将多个 PrivacyTools 子类别单向同步到 HTC 的「隐私」类别中。为什么不以类似方式与其他隐私相关的社区进行同步呢?
另一个例子。Feneas 和 SocialHub 都拥有一个顶层的「ActivityPub」类别。这些类别之间存在重叠和重复,一个社区的成员可能 unaware 另一个社区正在发生的事情。这是一个机遇,「ActivityPub」可作为双向同步的候选对象,使得每个论坛都包含相同的主题列表。
联邦化标签和单个主题
同样的逻辑也适用于标签,即特定标签可配置为进行联邦化。例如,可以设置使得 SocialHub 中带有 #specification 标签的任何主题都联邦化到 HTC 的「对齐 > 标准」子类别中。
主题也可以按个案进行联邦化,通过工具栏命令触发,指定要联邦化的目标论坛,并可能选择主题应出现的远程类别(即论坛类别列表也可用于远程浏览的联邦化)。
成员提及和个人资料查看
当主题被联邦化到另一个论坛时,其中的任何提及都需要调整以反映成员所在的论坛。我在 HTC 的 @aschrijver 用户名在同步后可能在 SocialHub 论坛上显示为 @aschrijver@humanetech。
由于我也是 SocialHub 的用户,我可以在个人资料设置中连接账户,经过验证后,这意味着在同步的主题中,我的本地账户用户名可以被显示。
点击远程用户名或成员头像时,将显示远程论坛的个人资料卡片。再次点击查看个人资料摘要时,它可能仅显示由同步主题互动产生的本地论坛活动指标。或者,更有趣的是,它可以显示所有已知且属于联邦配置论坛的摘要。例如,我将能够发现回复来自另一个论坛中一位非常活跃且专业的成员。
直接消息和通知
通过标记/提及远程成员,DM 可以在所有联邦化论坛之间进行,而不仅限于本地。除此之外,DM 通信的方式与当前仅本地的 DM 没有区别。
从上述所有联邦功能中衍生出对联邦化通知的需求。如果我回复了远程成员的帖子、点赞了他们的帖子,或在同步的主题线程中提及了他们,远程论坛的 UI 可能会出现通知以告知该成员。电子邮件通知也由远程论坛处理。然而,如果该成员在两个论坛上都链接了账户,通知可能会来自首次发生互动的本地论坛。
单点登录 (SSO)
请注意,在上述所有功能中,并不需要 SSO。远程成员不会自动获得对另一个联邦化论坛的特权访问。那么,如果他们在单向同步的主题线程中被提及呢?在这种情况下,他们将收到来自其自身论坛实例的 UI 通知和电子邮件,点击后会被引导至另一个论坛(可能在新浏览器标签页中),在那里他们可以查看主题。如果他们想要回复,则必须先注册并链接账户才能进行回复。
请注意,SSO 在 Fediverse 中是一个棘手的问题,目前尚无完善的解决方案。但对于 Discourse 到 Discourse 的联邦化,SSO 功能的实现可能会容易得多。如果存在 SSO 集成,那么点击通知可能会在当前论坛的上下文中打开主题(作为「远程视图」),并允许成员无缝地与其互动。
联邦化管理与复杂性
整个用例的描述都是基于 Discourse 从一开始就内置了联邦支持的前提。如果实现所有这些功能,它将触及产品的几乎所有特性。与开启此线程的用例——用于类似 FB 的 个性化信息流——不同,这里的联邦化是由论坛工作人员精心管理的,而不是个别成员的一时兴起。
大部分联邦配置是仅限管理员的操作。它应该具有战略性并经过良好规划,以保持社区组织和内容的直观性和逻辑性。联邦设置是作为社区建设工作流程的一部分逐步建立的,而不是随意添加的东西。
互操作性
当然,这种 ActivityPub 支持的愿景并不局限于 Discourse。任何兼容的软件项目都可以成为分布式社区网络的一部分。例如,forem 的开源社区建设软件和 loomio 的协作决策平台,我刚刚将这两个项目指向了这篇帖子。但 Discourse 拥有引领这一切的机遇。
Fediverse 集成
迄今为止,所有的联邦支持都局限于论坛/社区业务领域,但随着 ActivityPub 的集成,互操作性现在可以扩展到拥抱更广泛的 Fediverse,从而实现众多令人兴奋的商业案例。仅列举一些随机浮现在我脑海中的例子:
- 在 Mastodon / Pleroma 等微博客平台上通过 toots 向整个 Fediverse 宣布论坛帖子。
- 嵌入的图片会自动上传到 PixelFed 并从那里提供(例如对 Blender 社区很有用)。
- 日期/时间工具栏允许设置一个面向 Fediverse 的完整 Mobilizon 活动,具备完整的 RSVP 功能。
- 集成是双向的,其中活动上的 Mobilizon 讨论实际上是 Discourse 主题。
- 创建具有特殊视频功能的 PeerTube 主题,其中帖子是 PeerTube 上的评论线程。
- 您发布的主题自动成为 Writefreely 博客帖子及评论线程。
- 通过其 ActivityPub 支持,将论坛的部分内容作为应用嵌入到 Nextcloud 中。
- 通过 Funkwhale 集成播客功能(参见最近的关于播客支持的 视频)。
- 从 Flockingbird(正在开发中的专业社交网络,类似 LinkedIn 的名录)获取个人资料信息。
看看 ActivityPub 观察列表 上不断增长的应用数量,让您的想象力引导您吧 ![]()
后果
暂时忘记所有的技术障碍和困难,考虑一下这对 Discourse 作为一个产品意味着什么。或者更准确地说,Discourse 不再仅仅是「一个产品」:Discourse 已成为分布式社区网络。
论坛工作人员不再仅仅是工作人员。他们将采用更广阔的视角来进行社区建设。社区及其内容都存在于整个 Discourse 网络中。工作人员将积极关注其他 Discourse 实例,与它们的工作人员接触以建立合作伙伴关系,并创建有趣的联邦设计,以切割和重组其社区组织和内容,使其对社区成员基础最具吸引力。
社区成员本身也将得到更好的服务。更多有趣的内容将流向他们的论坛「门户」,论坛将比仅仅是一个本地事物更加活跃。社区成员将能够发现并与整个网络中其他论坛实例的成员进行互动。事实上,社区边界已被消除:社区无边界。

