Following non-actors

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.

Zap allows you to follow activities, notes, whatever. We typically don’t transmit these activities and only use them internally, but I don’t see any reason why you couldn’t transmit them if your use case required this. If somebody doesn’t recognise or isn’t prepared to handle this type of construct in a sensible way they can always ignore it. We define it more or less as “actor wishes to be notified of any followups (comments, likes, possibly even announces) to this object”. For an Event object it would indicate a desire to be notified of attendance responses.

1 Like

I feel quite strongly that making issues an actor is going to create a lot more problems that what you’re solving. As said by @macgirvin and also discussed in the SocialCG chat room earlier, I think it’s perfectly ok to do a Follow { Issue } as you indicate in your first paragraphs. ActivityPub doesn’t lock Follow to actors only even though it is vague about the use cases and only highlights following an actor.

There is also some discussion in the ActivityPub github issue I logged.

Friendica has got the ability to follow posts. This is used to follow the activities around a post (and their comments) from a person you don’t follow. Then we send a “follow” activity for the post URL to the author of that post.

1 Like