Blurst Of Times Documentation

Conversations


Applications:


public groups
private groups
rooms
boards
forums
"mailing lists" (aka circles/aspects)
"Facebook wall" emulation
any conversation requiring a built-in moderation workflow
any conversation desiring the application of established rules of order
"primary source" conversation back-filling that you're unlikely to ever need

An Introduction to providing and interacting with Conversations in ActivityPub


Definitions:


Conversation
    Activities sharing a context element AND a target element AND where (`context` == target).

Root
    An ActivityPub object with no inReplyTo field.

Conversation Owner
    The actor that Adds the Root object to the Conversation, which SHOULD be identical to
(`context` || target)->`attributedTo`.

Descendants
    An ActivityPub object containing an inReplyTo field and is either a Conversation OR at minimum contains an identical context with the Root object.

Participant
    Anybody who plays by the rules when encountering a Conversation.

The rules:


  1. All associated objects and their activity wrappers SHOULD be signed with FEP-8b32 Object Proofs
  2. The Conversation Owner SHOULD be the sole to recipient of replies generated by any Descendant in a Conversation.
  3. Descendants SHOULD NOT generate additional deliveries to "mentioned" actors or any other recipients when replying to a Conversation.
  4. Descendants SHOULD quietly ignore any Descendant object that was not sent by the Conversation Owner via an Add or Remove of that object to the Conversation target OR is a locally generated activity which is being sent to the Conversation Owner for the purpose of requesting inclusion in the Conversation.
  5. The Conversation Owner MAY accept activities of any type from any Descendants and  MAY Add them to the Conversation. This Add activity wraps the incoming signed activity as its object and this SHOULD be relayed to all Participants through unwrapping the embedded object - after verification. The Conversation Owner also SHOULD send an associated Remove if the object is ever removed from the Conversation.
  6. Participants MAY provide a replyTo field in their activities set to the Conversation Owner.
  7. Participants MIGHT WANT to ensure their same-origin policy implementation allows the import of embedded third-party signed objects via Adding to Collections with different owners.