activitypub icon indicating copy to clipboard operation
activitypub copied to clipboard

Suggest clearer terminology instead of "server"

Open jernst opened this issue 10 months ago • 2 comments

As I'm going through the spec with a fine comb for the purposes of identifying which piece of software has which responsibilities under which circumstances, so we can build a test suite, I am noticing that the term "server" is used for several things, and it makes reading the spec more confusing than necessary. Specifically:

  • server = the thing that receives and responds to any HTTP GET or POST request
  • server = the thing that is not the client in the client-to-server protocol
  • server = any thing that participates in the federation protocol
  • server = the thing that receives and responds to an HTTP GET or POST request in the federation protocol
  • server = the thing that initiates a client-server interaction, and acts as a client with another server during an HTTP GET or POST operation of the federation protocol.

So when the spec talks about a "server", it's often not immediately clear which of those meanings is meant, and whether a given requirement, for example, applies to all of those or just some of those and which ones.

For my purposes, I am identifying five roles:

  • the client in the client-to-server protocol
  • the server in the client-to-server protocol
  • the client-at-the-moment in a particular exchange of the federation protocol
  • the server-at-the-moment in a particular exchange of the federation protocol
  • anything that participates in the federation protocol (union of the two previous ones)

They probably should have distinct names, so the spec can be clearer.

P.S. Sometimes "server" appears to only refer to things that are both participating in the federation protocol and as servers in the client-to-server protocol, but does not when the client-to-server protocol is not used.

jernst avatar Apr 23 '24 23:04 jernst

I appreciate the input, but I think with an established specification, we don't have a lot of optionality in making editorial changes right now. I personally think the idea of "client" and "server" in the HTTP conversation is pretty clear, but I also understand that the roles could be better defined ("federation server", "API server", etc.). I'm going to mark this as "next version", meaning when we go to a working group for ActivityPub, we consider these terminology changes for clarity.

evanp avatar Apr 24 '24 16:04 evanp

@bobwyman brings up the good point that we can discuss these terms without necessarily making a change to the ActivityPub spec. In that spirit, I'd like to create a Primer page that covers the idea of client and server as described in ActivityPub, so it's clearer for our developers.

evanp avatar Apr 24 '24 16:04 evanp