| SQL Client | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Parse/optimize SQL and route key spans using versioned range descriptors. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of SQL Gateway. | 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 “Coordinator dies during two-phase commit” 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 SQL Client boundary before extracting or scaling it. |
| SQL Gateway | Owns authentication, validation, quotas, deadlines, and routing. In this design it participates in: Choose read timestamp and execute local or distributed reads from MVCC snapshots. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents SQL Client from also owning the contract and failure behavior of Parser / Optimizer. | 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 “Hot sequential key overloads one range” to SQL Client. | 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 SQL Gateway boundary before extracting or scaling it. |
| Parser / Optimizer | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: For writes acquire intents/locks, replicate each range command by consensus, and coordinate commit. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents SQL Gateway from also owning the contract and failure behavior of Schema Catalog. | 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 “Long read blocks MVCC garbage collection” to SQL Gateway. | 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 Parser / Optimizer boundary before extracting or scaling it. |
| Schema Catalog | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: Resolve abandoned intents and publish changefeed after commit timestamp is durable. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Parser / Optimizer from also owning the contract and failure behavior of Range Router. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Leaseholder moves during transaction” to Parser / Optimizer. | 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 Schema Catalog boundary before extracting or scaling it. |
| Range Router | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Split/merge hot ranges, rebalance replicas, compact MVCC, and run online schema migrations. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Schema Catalog from also owning the contract and failure behavior of Transaction Coordinator. | 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 version changes mid-query” to Schema 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 Range Router boundary before extracting or scaling it. |
| Transaction Coordinator | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Parse/optimize SQL and route key spans using versioned range descriptors. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Range Router from also owning the contract and failure behavior of Timestamp Oracle. | 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 “Coordinator dies during two-phase commit” to Range Router. | 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 Transaction Coordinator boundary before extracting or scaling it. |
| Timestamp Oracle | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Choose read timestamp and execute local or distributed reads from MVCC snapshots. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Transaction Coordinator from also owning the contract and failure behavior of Range Leaseholder. | 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 “Hot sequential key overloads one range” to Transaction Coordinator. | 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 Timestamp Oracle boundary before extracting or scaling it. |
| Range Leaseholder | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: For writes acquire intents/locks, replicate each range command by consensus, and coordinate commit. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Timestamp Oracle from also owning the contract and failure behavior of Consensus Replicas. | 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 “Long read blocks MVCC garbage collection” to Timestamp Oracle. | 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 Range Leaseholder boundary before extracting or scaling it. |
| Consensus Replicas | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Resolve abandoned intents and publish changefeed after commit timestamp is durable. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Range Leaseholder from also owning the contract and failure behavior of MVCC 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 “Leaseholder moves during transaction” to Range Leaseholder. | 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 Consensus Replicas boundary before extracting or scaling it. |
| MVCC Engine | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Split/merge hot ranges, rebalance replicas, compact MVCC, and run online schema migrations. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Consensus Replicas from also owning the contract and failure behavior of Distributed Lock Table. | 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 version changes mid-query” to Consensus Replicas. | 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 MVCC Engine boundary before extracting or scaling it. |
| Distributed Lock Table | Owns authoritative versioned state or immutable evidence. In this design it participates in: Parse/optimize SQL and route key spans using versioned range descriptors. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents MVCC Engine from also owning the contract and failure behavior of Changefeed 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 “Coordinator dies during two-phase commit” to MVCC Engine. | 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 Distributed Lock Table boundary before extracting or scaling it. |
| Changefeed Log | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: Choose read timestamp and execute local or distributed reads from MVCC snapshots. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Distributed Lock Table from also owning the contract and failure behavior of Range Split / Merge. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Hot sequential key overloads one range” to Distributed Lock 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 Changefeed Log boundary before extracting or scaling it. |
| Range Split / Merge | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: For writes acquire intents/locks, replicate each range command by consensus, and coordinate commit. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Changefeed Log from also owning the contract and failure behavior of Backup / Restore. | 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 “Long read blocks MVCC garbage collection” to Changefeed 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 Range Split / Merge boundary before extracting or scaling it. |
| Backup / Restore | Owns authoritative versioned state or immutable evidence. In this design it participates in: Resolve abandoned intents and publish changefeed after commit timestamp is durable. | Defines the source of truth and commit boundary. It prevents Range Split / Merge from also owning the contract and failure behavior of Observability. | 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 “Leaseholder moves during transaction” to Range Split / Merge. | 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 Backup / Restore boundary before extracting or scaling it. |
| Observability | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Split/merge hot ranges, rebalance replicas, compact MVCC, and run online schema migrations. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Backup / Restore 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 “Schema version changes mid-query” to Backup / Restore. | 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 Observability boundary before extracting or scaling it. |