Database Extensions for Federation Support and Compatibility at the WordPress Core Level #2170
Replies: 1 comment
-
If we cannot add new database tables, shouldn’t we consider treating all ActivityPub entities—actor, activity, and object—as objects and store them in the The moment the WordPress Core team argues that “adding DB tables is too difficult,” there are really only two options left:
🔍 The issue is that your suggestion—treating actor, activity, and object all as objects inside
This way, we don’t need to expand the DB schema while still being able to represent federation entities.
📌 To summarize:
So the real questions for Core devs are:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
https://core.trac.wordpress.org/ticket/63966
The extension of the ActivityPub protocol in WordPress is currently being developed not by the community but under the leadership of Automattic. However, this is only because the current implementation has not yet matured enough to be directly integrated into the Core. This does not mean that the Core team can simply ignore the issue.
Of course, I should not state it too definitively, but personally I am convinced that in the future it will inevitably be integrated into WordPress Core. Therefore, even if this issue is not yet being directly addressed at the global community level, I would like to raise it as something that should be considered.
For these reasons, I believe it is important to raise compatibility concerns on Trac as well. If the philosophical gap between WordPress Core logic and the ActivityPub protocol grows larger, it will become increasingly difficult to align them in the future.
And I do not think this is unrelated to improving the structure of Core itself. If WordPress evolves toward a more modern and interoperable structure, future integration will be smoother and WordPress will avoid drifting into a “Galápagos” model that ignores broader web standards.
The reason I am raising this issue is that (if I remember correctly) the ActivityPub plugin prioritizes integration with the existing structure and does not add separate database tables, so that it can be cleanly removed if needed.
Simply put, the ActivityPub vocabulary has actor, activity, and object. Actors can be understood as WordPress authors, and objects as WordPress posts or media.
On the other hand, activities (likes, reposts, follows, etc.) are handled in a way similar to WordPress.com Reader Notifications.
Does Core DB have a table to handle notifications? No, it does not. Isn’t that why notifications are implemented by mass-sending emails?
Why can’t self-hosted WordPress receive in-app notifications via PWA? Why must it always be connected to Jetpack or flood users with email notifications?
Why, when we visit another WordPress blog and leave a comment, do we have to enter our name, email, and URL as “anonymous”? Why must impersonation and spam be tolerated?
Why can’t we “follow” another site from “My Site” or compose a comment on my site and have it “sent” directly to a post on another site?
In conclusion, it seems inevitable that ActivityPub integration into Core will eventually happen. Currently, there is no table in Core to handle activities (which is why they are being stored in
comments
, but that is actually incorrect). What is needed is not only a local profile but also a remote actor table capable of handling proxy profiles, and a remote object table to subscribe to and “repost” those actors.However, such tables may not be strictly necessary in the existing Core, and since the ActivityPub plugin does not add new tables, a situation has arisen where responsibility is shifted back and forth. If the integration of the ActivityPub protocol into WordPress Core is to be seriously considered, then even if the operational logic is implemented by the plugin, the database tables themselves should be implemented at the Core level. That is my conclusion.
Four Key Points
Current Reality
comments
structure.Problem Statement
→ The lack of a
notifications
table means Core still relies on bulk email delivery.Philosophical Concern
Conclusion & Proposal
For Trac
Since Trac focuses on specific bug/ticket-level issues, the higher-level schema discussion should eventually be raised as a Core proposal or dev note. If you open a Trac ticket, keep it concise, for example:
Beta Was this translation helpful? Give feedback.
All reactions