w3c / activitypub

http://w3c.github.io/activitypub/
Other
1.24k stars 78 forks source link

Section 7 S2S describes delivering activities to non-addressed actors? #478

Open trwnh opened 2 weeks ago

trwnh commented 2 weeks ago

In order to propagate updates throughout the social graph, Activities are sent to the appropriate recipients. First, these recipients are determined through following the appropriate links between objects until you reach an actor, and then the Activity is inserted into the actor's inbox (delivery). This allows recipient servers to:

  • conduct any side effects related to the Activity (for example, notification that an actor has liked an object is used to update the object's like count)
  • deliver the Activity to recipients of the original object, to ensure updates are propagated to the whole social graph (see inbox delivery).

as written, this implies that the activity will be delivered or distributed to actors who are not addressed on the activity, but are instead addressed on "the original object", which is a worrying concept.

the parenthetical links to the subsection on "inbox forwarding", but even in that case, the forwarding targets still need to be addressed explicitly on the activity.

proposed resolution

errata. this should not be stated in the spec as it is currently stated. if implemented as described, it would be a violation of expected behavior. tangentially, the bit about "following the appropriate links" could also be reworded to just explicitly calling out the addressing properties

In order to propagate updates throughout the social graph, Activities are sent to the appropriate recipients. First, these recipients are determined through following the appropriate links between objects until you reach an actor, These recipients might be determined through following appropriate links between objects until you reach an actor for which the Activity can be considered relevant, and then the Activity is inserted into the actor's inbox (delivery).can be addressed to those actors for (delivery) targeting the actor's inbox. This also allows recipient servers to: conduct any side effects related to the Activity; for example, a notification that an actor has Liked an object is used to update the object's likes collection.

- conduct any side effects related to the Activity (for example, notification that an actor has liked an object is used to update the object's like count) - deliver the Activity to recipients of the original object, to ensure updates are propagated to the whole social graph (see inbox delivery).

final text for readability:

In order to propagate updates throughout the social graph, Activities are sent to the appropriate recipients. These recipients might be determined through following appropriate links between objects until you reach an actor for which the Activity can be considered relevant, and then the Activity can be addressed to those actors for (delivery) targeting the actor's inbox. This also allows recipient servers to conduct any side effects related to the Activity; for example, a notification that an actor has Liked an object is used to update the object's likes collection.

TallTed commented 2 weeks ago

Small tweaks to that final text...

To propagate updates through the social graph, Activities are sent to the appropriate recipients. These recipients might be determined through following appropriate links between objects until you reach an actor for which the Activity can be considered relevant; the Activity can then be addressed to those actors, targeting each actor's inbox (for delivery). This also allows recipient servers to handle any side effects related to the Activity; for example, a notification that an actor has Liked an object is used to update the object's likes collection.

evanp commented 1 week ago

I think one of the big problems with this section is the passive voice -- "Activities are sent", "recipients are determined". Changing these to use an active voice makes the responsibility more clear -- "Origin servers send activities" and "Origin servers determine the recipients."

I think we can wordsmith this, taking @trwnh 's text as a basis, and making sure we remove the passive voice to make responsibilities more clear.

evanp commented 1 week ago

I also think this architecture would benefit from a primer page describing how and when and by whom addressees are determined.