MACP Deployment Topologies

MACP is deployment-agnostic at the protocol level, but certain deployment shapes preserve its guarantees better than others.

Status: Non-normative (explanatory). In case of conflict, the referenced RFC is authoritative. Reference: RFC-MACP-0001 Core

MACP is deployment-agnostic at the protocol level, but certain deployment shapes preserve its guarantees better than others.

For the fuller treatment of routing, scaling, and deployment-topology invariants — including failover, ownership transfer, and cross-session isolation — see docs/architecture.md's own §10 (Routing and scaling: sessions as the sharding key) and §17 (Deployment topologies); this document is the compact three-topology reference, not a restatement. The normative transport baseline every topology assumes is RFC-MACP-0001 §9 (Transport Requirements).

1. Single Runtime

The simplest deployment hosts a single runtime and a small set of agents.

flowchart LR
  Client --> Runtime[MACP Runtime]
  Runtime --> AgentA
  Runtime --> AgentB
  Runtime --> AgentC
  Runtime --> Ledger[(Session Ledger)]

This topology is ideal for development, proofs of concept, or tightly controlled single-tenant systems.

2. Sharded Runtime

For higher throughput, sessions are partitioned by session_id.

flowchart TB
  LB[Load Balancer] --> Router[Router]
  Router --> S1[Shard 1]
  Router --> S2[Shard 2]
  Router --> S3[Shard 3]
  S1 --> L1[(Partition 1)]
  S2 --> L2[(Partition 2)]
  S3 --> L3[(Partition 3)]

The single-owner-per-OPEN-session invariant this topology depends on — and how failover preserves it across shards — is docs/architecture.md's own §10; it is not restated here.

3. Federated Coordination

Federated deployments allow different organizations or trust domains to run separate runtimes while coordinating through agreed transport and manifest surfaces.

flowchart LR
  A[Org A Runtime] <-->|TLS + MACP| B[Org B Runtime]
  A --> AAgents[Org A Agents]
  B --> BAgents[Org B Agents]

Federation depends on manifests (docs/discovery.md), mode descriptors, and registries/ being stable and discoverable across trust domains.

4. Operational recommendations

  • keep session owners close to their ledgers,
  • propagate backpressure rather than buffering indefinitely,
  • treat registries as cacheable but versioned,
  • expose health, latency, and rejection metrics per shard.

Backpressure carries its own SHOULD-level requirement, not just operational advice: see RFC-MACP-0004 §7 (DoS Mitigation). docs/architecture.md's own §11 (Flow control and resource limits) covers the full backpressure and quota model this recommendation summarizes. Treating registries as cacheable but versioned is this document's own operational guidance, not a restatement of an RFC requirement; RFC-MACP-0005 §10 (Registries) names the registry types it applies to. Rejection metrics support the auditability RFC-MACP-0004 §8 (Auditability) expects.