Something I don’t understand about ActivityPub, can anyone explain?
I get a Note in my timeline/inbox: “Curiouser and curiouser!” says Alice.
It’s from Alice@wonderland.org who has a million followers.
I reply to Alice’s message by sending a Note wrapped in a Create object to her inbox.
She can see my response.
But who tells all of her followers so they can also see my response and be part of the discussion?
Is it my instance’s job to walk https://wonderland.org/alice/followers and send the message to them all?
Even if there are shared inboxes, do I still have to fetch the list of Alice’s followers, make a webfinger query on each to determine their inbox then post the Note to every unique instance?
(I’m coming at this from experimenting with Mastodon, where perhaps things are handled differently?)
Send it to/cc alice and to/cc her followers collection IRI. It is not your responsibility to notify alice’s followers, nor do you even know who alice’s followers are, nor should you. If you send a message to alice addressed to alice’s followers, then it is alice’s responsibility and choice to do what is called inbox forwarding.
Mastodon largely does not do this, as it views such messages as spam.
Thanks, that’s much clearer - it’s not the sender’s responsibility.
So when I receive a message with a cc, my server needs to (optionally) duplicate/forward it to my followers.
I should have clarified, I meant sending a message to someone else’s followers. There’s some code that checks for whether a status is “distributable” and that check basically limits it to public or unlisted statuses (that have an ld signature as well). So you generally can’t depend on Mastodon to forward activities – anything without an embedded signature will not be fetched from its origin, and anything not public will not be forwarded even if it is has a signature. Furthermore, the status will be rejected outright if it is deemed “not related to local activity”.