This applies to PSYC under the rule of federation, not to PSYC2.

So you have the client, you talk to the server, but in a decentralized system what does your server do? It talks to other servers! Wikipedia:Inter-server aka S2S is all about Server-to-Server communication protocols.


Interserver communication aka S2S

psyced is probably the only crazy piece of software to support the beauty of three and a half different S2S protocols. See also a comparison of these protocols.

Interserver PSYC

The most natural of the three is PSYC obviously. Since psyced thinks in PSYC packets internally (even if just in abstract data structures), it only needs to render them into PSYC format and cast them into outer PSYCspace.

The only case which is a bit unusual is when unknown XML data is being accepted from a Jabber link and thus moved as is across the PSYC network. See PSYC as Jabber S2S for more on that.

Client-to-Server PSYC and Inter-Client-PSYC (experimental as yet, see psycion) aren't so very different from S2S PSYC.


Although the syntax remains the same, there is quite a difference in behaviours and functionality of S2S and Client-to-Server Jabber Protocols. XMPP S2S has some serious scalability issues described on the Jabber page.

psyced isn't very fast at parsing XML and generally dealing with XMPP isn't such a lightweight operation as doing interserver PSYC.

Interserver IRC

This is the newest freshest addition: psyced has the ability to connect to an IRC network disguised as an IRC server, and gateway an entire IRC network into federationland. This isn't a traditional way to do IRC S2S which in fact only a native ircd can do properly, and psyced will probably run into performance problems trying to keep up with the speed of an ircd and the size of a popular IRC network. psyced wasn't designed to serve large communities alone, so the natural way to make this work is to have several psyceds work as gateways into the IRC network in parallel.

We have been using this for BRASnet and it worked fine, but it needs custom patches for each flavour of ircd.

Interserver HTTP

More and more protocols on top of HTTP such as OStatus and Matrix are becoming relevant in today's Internet architecture.

psyced supports HTTP and it supports a bit of OAuth for Twitter ŋatewaying purposes. It could do a lot more in this area, but do we want it to?