Max sends undo follow request to jon

This UseCase shows the flow of undoing the follow activity of UseCase (uc_follow1_follow)

The UseCase describes the flow of a Activity-Pub Server that implements fep-4ccd

As a reminder, here is the follow activity again:

uc_follow1_follow-follow_activity
{
   "@context":"https://www.w3.org/ns/activitystreams",
   "id":"https://activitypub.academy/4d4070a9-522f-4117-ac66-e8d7dd8e2751",
   "type":"Follow",
   "actor":"https://activitypub.academy/users/john",
   "object":"https://dev.rdf-pub.org/resource/max"
}

the undo activty:

uc_follow2_undoFollow-undo_activity
{
  "id" : "https://rdfpub.org/0816",
  "type" : [ "Undo" ],
  "actor" : "https://rdfpub.org/max",
  "attributedTo" : "https://rdfpub.org/max",
  "object" : {
    "id" : "https://rdfpub.org/0817",
    "type" : [ "Follow"],
    "actor" : "https://rdfpub.org/max",
    "attributedTo" : "https://rdfpub.org/max",
    "object" : "https://rdfpub.org/0815",
    "to" : "https://mast.org/jon"
  },
  "to" : "https://mast.org/jon",
  "@context" : [ "https://www.w3.org/ns/activitystreams" ]
}
  • The undo activity must have the target actor as a recipient. The target actor can be contained in one of the following predicates: as:to, as:bto, as:cc, as:bcc, as:audience

  • The activity pub server (in our case rdfpub.org) is responsible for delivering the activities to the recipients of the activity. Even if the target server is currently unavailable. The activity should then be stored and sent at a later time.

TODO: The undo activity and the activity being undone MUST both have the same actor.

uc follow2 undoFollow diagram1
Figure 1. uc_follow2_undoFollow: Max sends undo/follow request to jon
  1. The Actor @max@rdfpub.org tells SomeApp that he wants to undo following @jon@mast.org.

  2. SomeApp sends a C2S as:Undo Activity to the outbox of Actor @max@rdfpub.org.

  3. The Activity-Pub Server 'rdfpub.org' sends a S2S as:Undo Activity to the inbox of @jon@mast.org

  4. The Activity-Pub Server 'rdfpub.org' removes the as:Undo Activity from the pendingFollowing collection of Actor @max@rdfpub.org.