If I have a non-actor object and I’d like it to be possible to follow (i.e. express interest in being notified on activities related to this object), should I turn this object into an actor?
Example use case: A bug tracker such as Bugzilla, where you can add yourself to the “CC list” of a bug and get e-mail notifications of all activity related to that specific bug. Now imagine the ActivityPub equivalent of this functionality, where users and projects are actors, but (right now) bugs aren’t actors.
Currently, I implement following bugs like this: Send a Follow activity where the recipient is the project, and the
object field is the bug. So, basically, you ask the project to become a follower of a bug that exists under it.
But if the only thing that can be followed is actors… it has to be done in some other way. For example, turn bugs into AP actors. Even if they never send or receive anything, and following is still done via the project actor.
Which objects should be actors, and which not? So far the guideline I’ve been using is that objects with independent meaning are actors, and objects whose meaning is tied to some other bigger object aren’t actors. Since bugs exist in the context of a specific project in which the bug has occurred, they aren’t currently actors in my implementation. A bug does have a “followers” collection, and it’s used via inbox forwarding: When someone comments on a bug, they list the bug’s followers collection as a recipient, as well as the project, and the project actor does inbox forwarding, delivering the comment to the bug’s followers.