Layer 03 · Servers
Servers: running a federated node
Choosing between ejabberd, Prosody and Openfire, publishing the right DNS records and getting both encrypted hops, client to server and server to server, on.
A federated network has no centre, which means the interesting decisions belong to whoever runs a server. Which implementation to install, what to publish in DNS so other servers can find yours, and what is actually encrypted on each of the two hops a message takes. This layer is written for the person doing that work, and it is deliberately specific about the places where a small mistake produces a server that looks fine and federates with nobody.
In this layer
-

What one node can see of a federation
A server sees its own queues and stanzas in full, and infers the rest. Resolution and revisit set the limits, exactly as they do in Earth observation.
-

A server starts with a name: domain and DNS first
Every guide to running a server begins with the software. The dependency nobody lists comes earlier: a name that resolves.
-

A server is a household: the weekly maintenance round
The daemon is the visible part. What keeps it running is a boring list, done on schedule, in the right order.
-

When two servers stop talking
The message did not arrive. Everything after that sentence is diagnosis, and diagnosis has a correct order.
-

ejabberd, Prosody, Openfire: how they differ
All three speak the same protocol. Choosing between them is a question of what you are willing to operate.
-

The DNS records a federated server needs
Most federation failures are DNS failures. The records are short, the rules are written down, and the order matters.
-

Encryption on the wire: c2s, s2s and TLS
A message crosses at least two connections. They are secured separately, and only one of them is under your control.
Every essay in this layer is written against the reference page on the three stanza types, and two neighbouring layers extend it: Protocol and History.