How do you use `context` (if at all)?

Option 3: context is heterogeneous and can contain both objects and activities.

Or, rather, I should jump to the end of the reasoning chain and just go ahead and say it: if the context is an actor, you can put the “post” objects in context and stuff the full activities in outbox instead. You could even make context be forward-chronological and outbox be reverse-chronological. Fetching context means fetching the “posts” of the thread; fetching outbox means fetching the “activity log” of the thread.

The way you make that work is inbox forwarding. The reason FEP-7888 makes mention of context.followers “if the context is an actor” is entirely due to this possibility. Your participatory activity looks something like this:

id: <some-create>
actor: <you>
type: Create
object:
  - id: <your-object>
    content: "Hello to the everyone"
    context: <context>
to/cc/audience: <context>, <context/followers>, <as:Public>

This indicates that the object should be Added to the <context>. You could also/instead attach context to the activity, but you don’t need to do that if you instead rely on inbox forwarding:

id: <some-like>
actor: <someone>
type: Like
object: <your-object>
to: <you>  # this notifies you directly/actively
cc: <context>, <context/followers>  # this means it will be delivered to the context actor to be forwarded to its followers

You wouldn’t need to Add the <some-like> to the <context> if you instead forward it and also make it available via <outbox>.

Again, adding to context collections is a bit of a negotiation between the sender and receiver. The sender adds the context property in the hopes that the receiver will Add that object (which may be an activity) to the context collection. The receiver is free to not Add the object/activity. Just like the receiver is free to not forward the activity to its followers, if it is deemed spam. But assuming all goes well, the ideal situation is that the post object gets labeled with the context property and added to the context collection, while the activity is inbox-forwarded to the context’s followers and/or audience.

1 Like