Suppose there’s a discussion about a ticket. The discussion is represented as a tree of Note objects, published using Create activities.
When I, as a client, post a comment in a such a discussion, I’d like to be able to address all the other people who have commented. How would I do that?
Before I describe my idea, let’s think about this for a moment like a mailing list: Suppose there’s an organization called Feneas, and this organization has a mailing list at
https://lists.feneas.org/feneas-discuss, and an email address such as
[email protected]. In ActivityPub terms, we can translate it to:
- There’s an ActivityPub object representing Feneas, of type Organization or similar, that object’s ID URL could simply be
https://feneas.org, or suppose Feneas has some Fediverse account, it could be
- That Feneas object has a list of people participating in the discussion about it. In mailing lists, you usually subscribe before you can get automatic email, while in our case here it’s typically open to everyone, anyone can comment on a ticket, and still get notified on new comments made afterwards. Either way, the point is that we have this list of people participating. In ActivityPub, we can represent it as a collection, say
https://federated.social/users/feneas/commenters. It doesn’t matter whether Feneas here is a user account or any other object; anything that can be a discussion topic can have a list of commenters.
So, my suggestion is like this: If there’s a project
https://federated.dev/dansup/pixelfed, and it has a ticket
https://federated.dev/dansup/pixelfed/tickets/127, and I’d like to make a comment on that ticket from my user account
https://fr33.xyz/users/fr33domlover, it happens as follows:
- Each ticket has a collection, suppose we call it “commenters”, which is a list of everyone who commented on the ticket. The server doesn’t have to literally keep a list; it could just generate the list from its database whenever it’s needed.
- For our ticket, the collection would be
- When I post my Create Note activity from an ActivityPub client application, I list that commenters collection URI in the “to” or “cc” fields.
- My server
fr33.xyzforwards the activity to
federated.devbecause the “to” (or “cc”) field lists a recipient hosted on the latter server
federated.devserver does inbox forwarding, it fetches/computes the list of commenters on the ticket and delivers the Create Note to them
There are questions and caveats and alternatives, but before I list those, I’m curious to hear how other people do such things