Skip to content
Presence & ProtocolAn independent guide to Jabber and XMPP

History

Digital archaeology on a dead protocol

A protocol twenty-seven years old has a topsoil of living documents and layers of dead ones beneath it. The dead layers still explain the surface.

An old rack-mounted server in a dim equipment room, a single status light still glowing.

Every long-lived protocol accumulates a buried city: extensions that were published and withdrawn, services that ran for years and vanished, domains that once hosted a busy server and now host a parking page. Reading those layers is a form of digital archaeology, and it borrows its method more honestly from field archaeology than from software engineering, because the problem is the same: reconstructing a working system from what was left behind, without mistaking your own reconstruction for the thing itself.

The field craft has a written tradition worth borrowing outright. The notebook kept by a Southwest archaeology team works the classic ground, Chaco Canyon, Mesa Verde, the rock art panels, and its method is the one that transfers: observe what is actually there, record its context before touching it, distinguish the object from the story told about it, and leave the site readable for whoever comes next. A deprecated XEP wants exactly the same treatment.

What counts as a stratum here?

Status, mostly, and it is already labelled. The XSF’s extension list marks every document with a state, and the states form a dig profile: Final and Stable on top, then Experimental, then the inactive and deprecated layers where the network’s earlier answers lie. The published list of extensions is the survey map, and the essay on the XEP process explains what each layer of the stratigraphy means. A Deferred or Deprecated number is not a failure: it is a preserved record of a solution that lost its context.

The physical evidence is the protocol’s own. An old server still answering on port 5269 announces a dialback-era habit. A client that only implements XEP-0045 group chat belongs to a different stratum than one speaking MIX. Even a JID’s shape carries period detail, because the addressing rules were themselves reworked when internationalisation arrived.

Why do the dead layers still matter?

Because the living text is written in their vocabulary. RFC 6120 keeps dialback in view even as TLS made it vestigial, and reading the current document without the buried one produces the classic field error of interpreting a foundation trench as a wall. The deprecated extensions record what was tried, and several were deprecated precisely because the trial produced a documentable failure, information that is only lost if the layer is dismissed as obsolete rather than read as evidence.

There is a second, practical reason: the dead layers are still running somewhere. A protocol with a quarter century of deployment has servers and clients written against documents long since superseded, and a modern implementation meets them on the wire whether or not it knows their names. Federation means the past is not a museum but a neighbour, and the operator who can read an old stanza pattern, an ancient certificate chain or a dialback attempt for what it is has a shorter diagnostic path than one who treats every old packet as noise.

How is a dead service excavated?

With the same care the notebook prescribes for a site, and with the same patience, because a trace is only evidence when its context is intact. A defunct XMPP service leaves its records in the DNS it no longer updates, in client configuration guides still online, in the announcements of its own closure and in the JIDs of its former users still sitting in other people’s rosters. Reconstructing what the service was means weighing those traces against each other, the announcements against the cached pages, the cached pages against the client lists of the period. The archaeologist’s discipline, write down what is observed separately from what is inferred, is what keeps a guess from hardening into a fact.

Two tools do most of the work, and neither is exotic. The Internet Archive’s crawls hold the service’s public face across the years, and the specification archives hold the version of the protocol the service was built against. Between the two, a reasonable reconstruction is usually possible: when it launched, what it ran, when it changed hands or software, when the records stopped answering. The uncertainty that remains is itself a finding, and it is recorded as uncertainty rather than filled in.

Leave the site readable

The field ethic has one more rule that federation needs badly: do not destroy the record by studying it. In the network’s case that means not rewriting history pages to flatter the present, keeping deprecated documents accessible instead of deleting them, and dating every claim so the next reader can re-dig. A dead protocol layer is only lost when it is paved over. This site’s own habit, citing the document, naming the date, is the field notebook translated to a text file, and it is the only reason the older layers of the path from jabberd to the RFCs can still be walked at all. The ruin is also the archive, and the archive is load-bearing.