This is one of many protocol behaviors described in ActivityPub.

Identifier

urn:uuid:a26b534a-1c9f-42d8-b30e-3790561caa14

Content

When Activities are received in the inbox, ...the server MUST target and deliver to the values of to, cc, and/or audience if and only if all of the following are true:

This is the first time the server has seen this Activity. The values of to, cc, and/or audience contain a Collection owned by the server. The values of inReplyTo, object, target and/or tag are objects owned by the server.

Origin

prefix When Activities are received in the inbox, the server needs to forward these to recipients that the origin was unable to deliver them to. To do this,

the server MUST target and deliver to the values of to, cc, and/or audience if and only if all of the following are true:

This is the first time the server has seen this Activity. The values of to, cc, and/or audience contain a Collection owned by the server. The values of inReplyTo, object, target and/or tag are objects owned by the server.
 

suffix The server SHOULD recurse through these values to look for linked objects owned by the server, and SHOULD set a maximum limit for recursion (ie. the point at which the thread is so deep the recipients followers may not mind if they are no longer getting updates that don't directly involve the recipient). The server MUST only target the values of to, cc, and/or audience on the original object being forwarded, and not pick up any new addressees whilst recursing through the linked objects (in case these addressees were purposefully amended by or via the client).

https://www.w3.org/TR/activitypub/

JSON

{
  "id": "urn:uuid:a26b534a-1c9f-42d8-b30e-3790561caa14",
  "uuid": "a26b534a-1c9f-42d8-b30e-3790561caa14",
  "type": "Behavior",
  "content": "When Activities are received in the inbox, ...the server MUST target and deliver to the values of to, cc, and/or audience if and only if all of the following are true:\n\n  This is the first time the server has seen this Activity.\n  The values of to, cc, and/or audience contain a Collection owned by the server.\n  The values of inReplyTo, object, target and/or tag are objects owned by the server.\n",
  "context": [
    "https://www.w3.org/TR/activitypub/",
    {
      "name": "7. Server to Server Interactions",
      "id": "https://www.w3.org/TR/activitypub/#server-to-server-interactions"
    },
    {
      "name": "7.1 Delivery",
      "id": "https://www.w3.org/TR/activitypub/#delivery"
    },
    {
      "name": "7.1.2 Forwarding from Inbox",
      "id": "https://www.w3.org/TR/activitypub/#inbox-forwarding"
    }
  ],
  "origin": {
    "source": "https://www.w3.org/TR/activitypub/",
    "section": {
      "id": "https://www.w3.org/TR/activitypub/#inbox-forwarding",
      "branch": [
        7,
        1,
        2
      ]
    },
    "selector": {
      "prefix": "When Activities are received in the inbox, the server needs to forward these to recipients that the origin was unable to deliver them to. To do this, \n",
      "exact": "the server MUST target and deliver to the values of to, cc, and/or audience if and only if all of the following are true:\n\nThis is the first time the server has seen this Activity.\nThe values of to, cc, and/or audience contain a Collection owned by the server.\nThe values of inReplyTo, object, target and/or tag are objects owned by the server.\n",
      "suffix": "The server SHOULD recurse through these values to look for linked objects owned by the server, and SHOULD set a maximum limit for recursion (ie. the point at which the thread is so deep the recipients followers may not mind if they are no longer getting updates that don't directly involve the recipient). The server MUST only target the values of to, cc, and/or audience on the original object being forwarded, and not pick up any new addressees whilst recursing through the linked objects (in case these addressees were purposefully amended by or via the client).\n"
    }
  },
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://socialweb.coop/ns/testing/context.json"
  ]
}