| Application | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Hash the key against a versioned virtual-node ring in the client. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of Client Library. | 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 “Node loss causes synchronized origin misses” 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 Application boundary before extracting or scaling it. |
| Client Library | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Read primary or permitted replica; lazily expire and promote recency metadata. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Application from also owning the contract and failure behavior of Key Hasher. | 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 “One key exceeds one node network capacity” to Application. | 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 Library boundary before extracting or scaling it. |
| Key Hasher | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: On miss, coalesce loaders so one caller fetches origin and populates the value. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Client Library from also owning the contract and failure behavior of Membership Snapshot. | 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 “Rebalance evicts the working set” to Client Library. | 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 Key Hasher boundary before extracting or scaling it. |
| Membership Snapshot | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Replicate according to durability mode and acknowledge at the chosen boundary. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Key Hasher from also owning the contract and failure behavior of Primary Cache Node. | 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 “Stale replica serves deleted value” to Key Hasher. | 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 Membership Snapshot boundary before extracting or scaling it. |
| Primary Cache Node | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: During rebalance, dual-read old/new owners and stream ranges before ownership cutover. | Removes repeated work from the latency-critical path. It prevents Membership Snapshot from also owning the contract and failure behavior of Replica Cache Node. | 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 “Oversized values fragment memory” to Membership Snapshot. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (100M ops/s · sub-ms hit · TBs of memory) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Primary Cache Node boundary before extracting or scaling it. |
| Replica Cache Node | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: Hash the key against a versioned virtual-node ring in the client. | Removes repeated work from the latency-critical path. It prevents Primary Cache Node from also owning the contract and failure behavior of Memory Slabs. | 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 “Node loss causes synchronized origin misses” to Primary Cache Node. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (100M ops/s · sub-ms hit · TBs of memory) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Replica Cache Node boundary before extracting or scaling it. |
| Memory Slabs | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Read primary or permitted replica; lazily expire and promote recency metadata. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Replica Cache Node from also owning the contract and failure behavior of Eviction 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 “One key exceeds one node network capacity” to Replica Cache Node. | 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 Memory Slabs boundary before extracting or scaling it. |
| Eviction Engine | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: On miss, coalesce loaders so one caller fetches origin and populates the value. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Memory Slabs from also owning the contract and failure behavior of TTL Wheel. | 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 “Rebalance evicts the working set” to Memory Slabs. | 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 Eviction Engine boundary before extracting or scaling it. |
| TTL Wheel | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Replicate according to durability mode and acknowledge at the chosen boundary. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Eviction Engine from also owning the contract and failure behavior of Replication Stream. | 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 “Stale replica serves deleted value” to Eviction 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 TTL Wheel boundary before extracting or scaling it. |
| Replication Stream | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: During rebalance, dual-read old/new owners and stream ranges before ownership cutover. | Decouples bursts and failure from user acknowledgment. It prevents TTL Wheel from also owning the contract and failure behavior of Rebalancer. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Oversized values fragment memory” to TTL Wheel. | 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 Replication Stream boundary before extracting or scaling it. |
| Rebalancer | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Hash the key against a versioned virtual-node ring in the client. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Replication Stream from also owning the contract and failure behavior of Hot-Key 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 “Node loss causes synchronized origin misses” to Replication Stream. | 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 Rebalancer boundary before extracting or scaling it. |
| Hot-Key Detector | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Read primary or permitted replica; lazily expire and promote recency metadata. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Rebalancer from also owning the contract and failure behavior of Origin Loader. | 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 “One key exceeds one node network capacity” to Rebalancer. | 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 Hot-Key Detector boundary before extracting or scaling it. |
| Origin Loader | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: On miss, coalesce loaders so one caller fetches origin and populates the value. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Hot-Key Detector from also owning the contract and failure behavior of Cache 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 “Rebalance evicts the working set” to Hot-Key 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 Origin Loader boundary before extracting or scaling it. |
| Cache Metrics | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: Replicate according to durability mode and acknowledge at the chosen boundary. | Proves correctness and supports controlled recovery. It prevents Origin Loader from also owning the contract and failure behavior of operators and repair tooling. | 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 “Stale replica serves deleted value” to Origin Loader. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (100M ops/s · sub-ms hit · TBs of memory) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Cache Metrics boundary before extracting or scaling it. |