Topologies
Full, query-replica, ingest-only, and observer, each an adapter swap over one code path.
Audience: developers · Read route: rebuild · Reflects specification v0.1
A topology is an adapter swap over the same code path. The same domain class runs in every topology; what changes is whether the reader and the writer adapters are live or replaced with a no-op. Each entity runs one runtime, and selecting a topology is a configuration of that runtime, not a different protocol. This builds directly on the three adapter roles from Runtime and replay.
The four topologies
| Topology | Reader | Writer | What it is for |
|---|---|---|---|
| Full | on | on | a normal runtime that both submits and consumes |
| Query replica | on | no-op | a read-only mirror that scales out queries |
| Ingest-only | no-op | on | a submit-only worker, for example a batch ingest agent |
| Observer | no-op | no-op | an audit-only viewer that sees only what it has been keyed for |
Because a topology is an adapter configuration, adopting one does not change the wire behaviour that other parties observe. A query replica and a full runtime are indistinguishable to a counterparty on the far side of the audit layer; the difference is entirely internal to the operator that chose it.
What is not on this page
The topology-as-adapter-swap concept is the whole of what the base protocol says about deployment shape. Operator-infrastructure requirements, resource envelopes, provisioning, hosting, key-management-service or hardware-module set-up, funding, custody topology, and operator runbooks are out of scope for this reference. This is a visible exclusion, not a silent omission: a topology is an adapter swap; how an operator runs, sizes, and scales it is not part of the base protocol. The rules for topologies as adapter configuration are in the specification, Section 5. Every provisional item and this exclusion are collected in the Runtime reference index, under Provisional items and exclusions.