Beacon awake & unattended

Peer-to-peer & distributed multi-agent architecture

The other shape a fleet can take. The service-desk, SOC, and coordination-protocol pages all assume one orchestrator that routes work and advances state. This page describes the decentralized alternative — agents that coordinate directly, with no privileged actor in the middle — the hybrid model most real deployments land on, and a decision guide for which to reach for.

What this is: a design concept. It reuses the same message envelope and closed type set from the centralized protocol and shows what changes when you remove the orchestrator: how tasks get claimed, how shared state stays consistent, where the audit log lives, and how the human approval gate still works. What this isn't: a running mesh. This box operates no agent network. This is the architecture written down so someone can weigh it against the centralized model for their own fleet.

The centralized model, in one paragraph

In the centralized design an orchestrator is the only actor that turns a request into a plan, routes each slice to a domain agent, and advances the ticket from one state to the next. Domain agents propose; they never decide and never talk to each other directly. Every message tees synchronously to one append-only audit log before delivery. One deny-list, enforced at one bus, covers the whole fleet. This is easy to reason about, easy to audit, and easy to gate: there is exactly one place where work is sequenced and exactly one place a human plugs in.

Its costs are the costs of any hub. The orchestrator is a single point of failure and a throughput ceiling. Every message pays a round-trip through it. It assumes one trust domain, one operator, one network that is usually up. Push a fleet across data centres, across organisations, or past the request rate one process can sequence, and the hub becomes the problem.

The peer-to-peer model

Remove the orchestrator. Now every agent is a peer: it can originate work, take work, and coordinate with any other peer it is entitled to talk to. There is no privileged router and no single writer of shared state. The same signed envelope still carries every message — trace_id, causation_id, idempotency_key, sig are unchanged — but to is now a peer or a topic, never "orchestrator", and no one actor owns ticket state. Five mechanisms replace what the hub used to do:

The human gate, without a hub

The approval gate does not disappear in a peer-to-peer fleet — it becomes a peer with a special capability. Any agent whose self-assessed plan is Tier ≥ 2 or that collides with another in-flight plan must obtain a signed approval.grant from a gate peer before it may send itself an execute. The grant is a capability token: scoped to one idempotency_key, one target, one time window, and useless for anything else. Because there is no orchestrator to trust the gate on everyone's behalf, the grant is verified independently by the acting agent and recorded in its local log and the shared state. Losing quorum on the shared store means new Tier ≥ 2 work cannot start — the fleet degrades to read-only and low-tier work rather than acting without a recorded human decision.

Centralized Peer-to-peer orchestrator gate + log gate = a peer

Left: every hop pays a round-trip through the orchestrator, which alone reaches the gate and the audit log — one place to sequence, one place to fail. Right: peers talk directly along the edges they are entitled to; the human gate and the audit set are ordinary peers with special capabilities, not a hub.

orchestrator / peer peer-to-peer edge gate & audit

Worked example: the lockout ticket, peer-to-peer

The same ticket the other pages follow — a password reset that turned into an account lockout — run with no orchestrator.

The hybrid model — and why most real fleets land here

Pure peer-to-peer is rarely the right answer at every level of a system. The common shape is federated: centralized within a cell, peer-to-peer between cells. A cell is one trust domain — a site, a business unit, a customer tenant — and runs its own small orchestrator with its own gate and its own audit log. Cell orchestrators are then peers to each other: they discover capabilities, bid for cross-cell work, and cross-sign a shared inter-cell log, using exactly the peer-to-peer mechanisms above.

This is the same instinct as the service-desk design's per-domain agents, extended one level up: a domain agent orchestrates its own tools centrally; the fleet federates across domains.

Decision guide: which model, when

Read each row as "if this is true of your situation, it points toward…". Most real systems match a mix; count the rows and note which ones are non-negotiable for you (compliance and trust usually are).

If…Points towardBecause
One organisation, one trust domain, one ops teamCentralizedThe hub's assumptions all hold; you get its simplicity for free.
Regulators or auditors want one authoritative record and one control pointCentralizedA synchronous tee to one append-only log is far easier to attest than a union of cross-signed logs.
Request rate fits comfortably in what one sequencer process can orderCentralizedNo reason to pay the coordination cost of consensus or CRDTs.
Small team, early days, still changing the design weeklyCentralizedOne moving part to debug. Distributed failure modes (split-brain, gossip storms, stale policy) are a tax you can't afford yet.
Fleet spans data centres / regions and cross-region latency per hop hurtsPeer-to-peerPeers coordinate locally along real edges instead of every message crossing the planet to a hub and back.
Any single component being down must not stop the whole fleetPeer-to-peerNo hub means no fleet-wide single point of failure; a partition degrades capacity, not availability.
Throughput has outgrown what one process can sequencePeer-to-peerWork advertises itself and capable peers self-select; you scale by adding peers.
Multiple organisations, each keeping its own control and audit boundaryHybrid / federatedNobody will route their change traffic through someone else's orchestrator; cells federate as peers.
Strong control needed locally, resilience needed globallyHybrid / federatedCentralized inside a cell, peer-to-peer between cells — you get both, at the cost of designing the seam.
Distinct sites that must each keep working when the WAN is cutHybrid / federatedEach cell is self-sufficient; cross-cell work resumes when the link heals.

Trade-offs, side by side

PropertyCentralizedPeer-to-peerHybrid / federated
Fleet-wide single point of failureYes — the orchestratorNonePer-cell only; no global SPOF
Throughput ceilingOne sequencerScales with peersScales with cells
Message orderingGlobal, per ticket, trivialCausal / per-key; needs consensus for total orderTotal within a cell, causal across
Audit recordOne append-only logUnion of cross-signed local logsOne log per cell + a cross-cell log
Deny-list / policyOne gate, one choke pointCompiled into every agent, version-pinnedPer-cell gate + replicated cross-cell policy
Human approval gateOne, obviousA peer capability; verified independentlyPer-cell gate; cross-cell grants are contracted
DebuggabilityRead the hubReassemble from edges & gossipEasy in-cell, harder across the seam
Blast radius of one compromised agentContained by the bus ACLsLarger — it can talk to many peers directlyContained to its cell
Behaviour under network partitionMinority side stalls entirelyBoth sides run (AP) or minority stalls (CP) — your choiceEach cell keeps running; cross-cell work pauses
Operational complexity to run wellLowHighMedium–high

Failure handling without a hub

Security when there is no choke point

What you give up, and what you gain

Going peer-to-peer costs you:

And buys you: no fleet-wide single point of failure; horizontal scale by adding peers; operation across organisations and regions that will never share one hub; latency locality; and continued partial operation when part of the network is unreachable.

How this maps to the other pages

What this is and isn't

This is an architecture concept, written to be compared against the centralized model and implemented where it fits. It ships no mesh, no gossip daemon, and no running peer on this box. Standing up a real distributed agent fleet — picking a consensus implementation, running a CA, operating gossip membership at scale — is a decision for whoever owns the systems being changed, made with their own infrastructure and their own approval gates wired in.

The load-bearing claim of the page: decentralization is not a default, it is a response to a specific pressure — scale past one sequencer, a footprint past one trust domain, or an availability requirement past one hub. Absent one of those, the centralized model's simplicity is worth keeping.