Who should I send Delete activities to?
SorteKanin @SorteKanin@socialhub.activitypub.rocks
How to handle incoming Delete activities is already well-discussed elsewhere [1][2].
However, I have a hard time finding material on how to handle outgoing Delete activities. Specifically around this question: Who do I send such an activity to?
Naively, you might send the activity to the actor's followers. But imagine this simple scenario:
- Alice follows Bob.
- Bob posts a Note that Alice receives.
- Alice stops following Bob.
- Bob deletes the Note.
If we only send Delete activities to the followers of the actor, Alice will never receive the Delete activity and the Note will not be deleted, which is clearly not what Bob intended.
Another strategy might be to keep a record of all historical followers of an actor, and then send Delete activities to current and past followers. However, I am worried that this is not good enough either:
- Alice follows Bob and Bob follows Charlie.
- Charlie posts a Note that Bob receives.
- Bob shares (Announces) the Note, and Alice receives the Note too because she follows Bob.
- Alice stops following Bob and Bob stops following Charlie.
- Charlie deletes the Note.
I am a bit dumbfounded at what to do in this scenario. I might be missing something, but it seems impossible for Charlie to know that Alice has the Note. The only way I could possibly see this working is that Bob receives the Delete activity (as he is a past follower) and then graciously re-Announces the Delete activity to his followers, since he previously announced the deleted Note. Then Alice would also receive the Delete, as the re-Announce of the Delete would also need to be sent to all past followers.
However this seems complicated and relies on the good behaviour of Bob to re-Announce to his past followers, and I see no way to discover if Bob never re-Announced the deletion.
Another option is to send Delete activities to all known servers, but this doesn't necessarily include Alice either I would think.
How is this done in existing implementations? This is making me think reliable deletions are impossible and I'd love to be proved wrong.