| Service Instance | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Authenticate instance and commit registration/lease under catalog generation. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of Registration Agent. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Instance partitions from catalog but still serves” to the external caller. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Service Instance boundary before extracting or scaling it. |
| Registration Agent | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Probe health independently and transition availability only after policy thresholds. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Service Instance from also owning the contract and failure behavior of Identity / ACL. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Health probes create false outage” to Service Instance. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Registration Agent boundary before extracting or scaling it. |
| Identity / ACL | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Append ordered membership change and build complete signed snapshots. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Registration Agent from also owning the contract and failure behavior of Health Prober. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Client misses compacted revision” to Registration Agent. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Identity / ACL boundary before extracting or scaling it. |
| Health Prober | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Relays distribute snapshots/deltas; clients atomically swap local endpoint caches. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Identity / ACL from also owning the contract and failure behavior of Discovery API. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Two regions disagree on endpoint” to Identity / ACL. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Health Prober boundary before extracting or scaling it. |
| Discovery API | Owns authentication, validation, quotas, deadlines, and routing. In this design it participates in: Clients load-balance locally and resume watch by revision or full snapshot after compaction. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Health Prober from also owning the contract and failure behavior of Consensus Catalog. | Put protocol, authentication, quotas, and business transitions in one process. Acceptable at low scale, but it couples external traffic risk to domain releases. Here that simpler choice would couple “Catalog unavailable during mass restart” to Health Prober. | Costs another hop, policy distribution, and a high-blast-radius fleet. Introduce it when many clients or services need one protocol and protection boundary. Measure the latency, saturation, lag, or mismatch at the Discovery API boundary before extracting or scaling it. |
| Consensus Catalog | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: Authenticate instance and commit registration/lease under catalog generation. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Discovery API from also owning the contract and failure behavior of Lease Table. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Instance partitions from catalog but still serves” to Discovery API. | Costs eventual consistency, schema evolution, replay tooling, idempotent consumers, and lag operations. Earn it when bursts or downstream failure must not block acknowledgment. Measure the latency, saturation, lag, or mismatch at the Consensus Catalog boundary before extracting or scaling it. |
| Lease Table | Owns authoritative versioned state or immutable evidence. In this design it participates in: Probe health independently and transition availability only after policy thresholds. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Consensus Catalog from also owning the contract and failure behavior of Change Log. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Health probes create false outage” to Consensus Catalog. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Lease Table boundary before extracting or scaling it. |
| Change Log | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: Append ordered membership change and build complete signed snapshots. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Lease Table from also owning the contract and failure behavior of Snapshot Builder. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Client misses compacted revision” to Lease Table. | Costs eventual consistency, schema evolution, replay tooling, idempotent consumers, and lag operations. Earn it when bursts or downstream failure must not block acknowledgment. Measure the latency, saturation, lag, or mismatch at the Change Log boundary before extracting or scaling it. |
| Snapshot Builder | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Relays distribute snapshots/deltas; clients atomically swap local endpoint caches. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Change Log from also owning the contract and failure behavior of Regional Relay. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Two regions disagree on endpoint” to Change Log. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Snapshot Builder boundary before extracting or scaling it. |
| Regional Relay | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Clients load-balance locally and resume watch by revision or full snapshot after compaction. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Snapshot Builder from also owning the contract and failure behavior of Client Resolver. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Catalog unavailable during mass restart” to Snapshot Builder. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Regional Relay boundary before extracting or scaling it. |
| Client Resolver | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Authenticate instance and commit registration/lease under catalog generation. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Regional Relay from also owning the contract and failure behavior of Local Endpoint Cache. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Instance partitions from catalog but still serves” to Regional Relay. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Client Resolver boundary before extracting or scaling it. |
| Local Endpoint Cache | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: Probe health independently and transition availability only after policy thresholds. | Removes repeated work from the latency-critical path. It prevents Client Resolver from also owning the contract and failure behavior of Load Balancer. | Read authoritative storage for every request. Simpler initially, but latency and source-of-truth load scale together and a hot key becomes a database incident. Here that simpler choice would couple “Health probes create false outage” to Client Resolver. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (10M instances · updates in seconds · lookup < 5 ms) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Local Endpoint Cache boundary before extracting or scaling it. |
| Load Balancer | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Append ordered membership change and build complete signed snapshots. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Local Endpoint Cache from also owning the contract and failure behavior of Failure Detector. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Client misses compacted revision” to Local Endpoint Cache. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Load Balancer boundary before extracting or scaling it. |
| Failure Detector | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Relays distribute snapshots/deltas; clients atomically swap local endpoint caches. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Load Balancer from also owning the contract and failure behavior of Audit / Metrics. | Keep this behavior inside an adjacent service. Prefer that simpler option until independent scale, ownership, policy, or failure isolation is measurable. Here that simpler choice would couple “Two regions disagree on endpoint” to Load Balancer. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Failure Detector boundary before extracting or scaling it. |
| Audit / Metrics | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Clients load-balance locally and resume watch by revision or full snapshot after compaction. | Proves correctness and supports controlled recovery. It prevents Failure Detector from also owning the contract and failure behavior of operators and repair tooling. | Infer correctness from request logs. Logs do not prove durable business state, detect silent drift, or safely repair ambiguous outcomes. Here that simpler choice would couple “Catalog unavailable during mass restart” to Failure Detector. | Costs an interface, deployment, telemetry, ownership, and failure mode. Keep it in-process first; extract when independent scale or reliability pays for the boundary. Measure the latency, saturation, lag, or mismatch at the Audit / Metrics boundary before extracting or scaling it. |