| Operator / CI | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Authenticate/authorize author, validate schema, references, and organization policy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of Config 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 “Schema-valid config is operationally unsafe” 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 Operator / CI boundary before extracting or scaling it. |
| Config API | Owns authentication, validation, quotas, deadlines, and routing. In this design it participates in: Store immutable candidate and produce a semantic diff for approval. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Operator / CI from also owning the contract and failure behavior of RBAC / Approval. | 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 “Relay misses ordered update” to Operator / CI. | 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 Config API boundary before extracting or scaling it. |
| RBAC / Approval | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Canary by cohort; clients fetch checksum bundle and atomically swap local state. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Config API from also owning the contract and failure behavior of Schema Validator. | 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 cannot parse new schema” to Config API. | 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 RBAC / Approval boundary before extracting or scaling it. |
| Schema Validator | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Observe health/acknowledgment gates, then advance or roll back environment pointer. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents RBAC / Approval from also owning the contract and failure behavior of Policy Engine. | 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 “Global pointer advances too quickly” to RBAC / Approval. | 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 Schema Validator boundary before extracting or scaling it. |
| Policy Engine | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Disconnected clients resume watch from generation or poll the complete snapshot. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Schema Validator from also owning the contract and failure behavior of Immutable Version Store. | Embed policy in every caller. Rules then drift by deployment version and emergency changes require fleet-wide redeployment. Here that simpler choice would couple “Secret reference resolves in wrong tenant” to Schema Validator. | 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 Policy Engine boundary before extracting or scaling it. |
| Immutable Version Store | Owns authoritative versioned state or immutable evidence. In this design it participates in: Authenticate/authorize author, validate schema, references, and organization policy. | Defines the source of truth and commit boundary. It prevents Policy Engine from also owning the contract and failure behavior of Environment Pointer. | Let each service persist its own interpretation. That removes one clear commit boundary and makes retries, support, and reconciliation ambiguous. Here that simpler choice would couple “Schema-valid config is operationally unsafe” to Policy Engine. | Costs schema migration, replication, backup, and shard ownership. Split storage only when access patterns, retention, or compliance boundaries materially differ. Measure the latency, saturation, lag, or mismatch at the Immutable Version Store boundary before extracting or scaling it. |
| Environment Pointer | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Store immutable candidate and produce a semantic diff for approval. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Immutable Version Store from also owning the contract and failure behavior of Rollout Controller. | 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 “Relay misses ordered update” to Immutable Version Store. | 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 Environment Pointer boundary before extracting or scaling it. |
| Rollout Controller | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Canary by cohort; clients fetch checksum bundle and atomically swap local state. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Environment Pointer 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 “Client cannot parse new schema” to Environment Pointer. | 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 Rollout Controller boundary before extracting or scaling it. |
| Change Log | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: Observe health/acknowledgment gates, then advance or roll back environment pointer. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Rollout Controller from also owning the contract and failure behavior of Relay Root. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Global pointer advances too quickly” to Rollout Controller. | 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. |
| Relay Root | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Disconnected clients resume watch from generation or poll the complete snapshot. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Change Log from also owning the contract and failure behavior of Regional Relays. | 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 “Secret reference resolves in wrong tenant” 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 Relay Root boundary before extracting or scaling it. |
| Regional Relays | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Authenticate/authorize author, validate schema, references, and organization policy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Relay Root from also owning the contract and failure behavior of Client Watch. | 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 “Schema-valid config is operationally unsafe” to Relay Root. | 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 Relays boundary before extracting or scaling it. |
| Client Watch | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Store immutable candidate and produce a semantic diff for approval. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Regional Relays from also owning the contract and failure behavior of Local Last-Good 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 “Relay misses ordered update” to Regional Relays. | 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 Watch boundary before extracting or scaling it. |
| Local Last-Good Cache | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: Canary by cohort; clients fetch checksum bundle and atomically swap local state. | Removes repeated work from the latency-critical path. It prevents Client Watch from also owning the contract and failure behavior of Secret Reference Service. | 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 “Client cannot parse new schema” to Client Watch. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (Millions clients · updates in seconds · strong audit requirements) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Local Last-Good Cache boundary before extracting or scaling it. |
| Secret Reference Service | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Observe health/acknowledgment gates, then advance or roll back environment pointer. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Local Last-Good Cache from also owning the contract and failure behavior of Health Gates. | 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 “Global pointer advances too quickly” to Local Last-Good 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 Secret Reference Service boundary before extracting or scaling it. |
| Health Gates | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Disconnected clients resume watch from generation or poll the complete snapshot. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Secret Reference Service from also owning the contract and failure behavior of operators and repair tooling. | 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 “Secret reference resolves in wrong tenant” to Secret Reference Service. | 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 Gates boundary before extracting or scaling it. |