Negotiating protocols between actors or clients

Hello all,

I know that the CG meeting next week is likely to have its time filled with
discussions of potential charters, but I'd like to bring up a potential CG
meeting agenda item:

PROPOSAL: The SocialCG should convene a task force to document protocols
built on top of ActivityPub, including how to negotiate protocols
client-to-client or actor-to-actor.

The roles and responsibilities of this task force would include, to start
with:

1. Defining a mechanism to signal which protocols are supported, or in
other words, which total set of behaviors will be carried out when an
activity is received at an outbox or delivered to an inbox. Behaviors can
be broken down into the following categories:

1.1. Server behaviors. Which actions can be carried out automatically by a
server? How can an actor detect that a server will understand and carry out
side effects? Example: When an `Announce` is received in an inbox, a server
might automatically add it to the `shares` collection... or it might not.

1.2. Client behaviors. Which actions are intended for clients to understand
and do something with them? How can an actor negotiate a session between
two clients? Example: Alice is using an E2EE messenger (or chess
application), and wants to establish an E2EE conversation (or chess game)
specifically with a client attached to Bob's actor or profile.

1.3. Actor behaviors. Which actions can the actor take or respond with, in
response to a given activity? How can an actor be expected to act? Example:
When Alice receives an activity referencing an object that has set
`inReplyTo` or `context` or etc. referencing an object belonging to Alice,
then Alice might want to Add that object to an appropriate collection. This
behavior might also occur at the client level, if the client is configured
to automatically manage those collections. This behavior might also occur
at the server level, if the server is configured to automatically manage
those collections.

2. Documenting one or more common profiles for a total set of behaviors as
described above.

2.1. Option: A protocol for the management and replication of resources
across servers. Define behaviors for Create/Update/Delete/Add/Remove at the
server level, client level, and actor level. Define where and how resources
are stored, how long resources are stored or cached, etc.

2.2 Option: A protocol for publishing "posts" to a "profile". Define what
is a "post", what is a "profile", etc. (Some overlap with the Forum TF
here, especially once you get to the level of defining "conversation" and
"forum".)

2.3. Option: A protocol for publishing "activities" to an "activity
stream". Define generic processing and shape that an activity must fit.
Define how to identify these activities as simple notifications, in cases
where side effects might not be needed or desired.

3. Generating one or more reports for the above items.

I would love to know what other people think about this agenda item or
general issue, and I welcome discussion of this issue both on the mailing
list and in other venues.

Received on Saturday, 2 November 2024 10:32:30 UTC