| Service Client | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Acquire a unique worker/region identity through consensus and persist generation locally. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of Regional Endpoint. | 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 “Clock moves backward” 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 Client boundary before extracting or scaling it. |
| Regional Endpoint | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Read monotonic time; detect wall-clock rollback before composing an ID. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Service Client from also owning the contract and failure behavior of ID Worker. | 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 processes share worker ID” to Service Client. | 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 Endpoint boundary before extracting or scaling it. |
| ID Worker | Executes idempotent asynchronous work under lease and retry policy. In this design it participates in: Pack timestamp, region, worker, and per-millisecond sequence into configured bits. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Regional Endpoint from also owning the contract and failure behavior of Monotonic Clock. | Perform the work before acknowledging the caller. This gives simpler consistency but unbounded tail latency and fragile retries. Here that simpler choice would couple “Sequence overflows one millisecond” to Regional Endpoint. | Costs leases, checkpoints, retries, DLQs, and lag operations. Separate once execution time or burstiness no longer fits the request deadline. Measure the latency, saturation, lag, or mismatch at the ID Worker boundary before extracting or scaling it. |
| Monotonic Clock | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: When sequence exhausts, wait for next tick or consume a leased numeric range. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents ID Worker from also owning the contract and failure behavior of Worker Lease 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 “Epoch/bit layout changes during rollout” to ID Worker. | 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 Monotonic Clock boundary before extracting or scaling it. |
| Worker Lease Cache | Serves a low-latency, disposable projection with authoritative fallback. In this design it participates in: Stop generation on lost lease and monitor sampled/full uniqueness at system boundaries. | Removes repeated work from the latency-critical path. It prevents Monotonic Clock from also owning the contract and failure behavior of Consensus Lease 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 “Identifiers leak business volume” to Monotonic Clock. | Costs invalidation, staleness, stampede protection, and memory. Add or split it only after the workload (10M IDs/s · multi-region · 64–128 bits) proves repeated reads dominate. Measure the latency, saturation, lag, or mismatch at the Worker Lease Cache boundary before extracting or scaling it. |
| Consensus Lease Service | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Acquire a unique worker/region identity through consensus and persist generation locally. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Worker Lease Cache from also owning the contract and failure behavior of Worker Registry. | 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 “Clock moves backward” to Worker Lease 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 Consensus Lease Service boundary before extracting or scaling it. |
| Worker Registry | Executes idempotent asynchronous work under lease and retry policy. In this design it participates in: Read monotonic time; detect wall-clock rollback before composing an ID. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Consensus Lease Service from also owning the contract and failure behavior of Epoch Config. | Perform the work before acknowledging the caller. This gives simpler consistency but unbounded tail latency and fragile retries. Here that simpler choice would couple “Two processes share worker ID” to Consensus Lease Service. | Costs leases, checkpoints, retries, DLQs, and lag operations. Separate once execution time or burstiness no longer fits the request deadline. Measure the latency, saturation, lag, or mismatch at the Worker Registry boundary before extracting or scaling it. |
| Epoch Config | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Pack timestamp, region, worker, and per-millisecond sequence into configured bits. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Worker Registry from also owning the contract and failure behavior of Rollback 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 “Sequence overflows one millisecond” to Worker Registry. | 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 Epoch Config boundary before extracting or scaling it. |
| Rollback Detector | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: When sequence exhausts, wait for next tick or consume a leased numeric range. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Epoch Config from also owning the contract and failure behavior of Range Allocator. | 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 “Epoch/bit layout changes during rollout” to Epoch Config. | 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 Rollback Detector boundary before extracting or scaling it. |
| Range Allocator | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Stop generation on lost lease and monitor sampled/full uniqueness at system boundaries. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Rollback Detector from also owning the contract and failure behavior of ID Decoder Tool. | 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 “Identifiers leak business volume” to Rollback 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 Range Allocator boundary before extracting or scaling it. |
| ID Decoder Tool | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Acquire a unique worker/region identity through consensus and persist generation locally. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Range Allocator from also owning the contract and failure behavior of Collision Monitor. | 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 “Clock moves backward” to Range Allocator. | 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 ID Decoder Tool boundary before extracting or scaling it. |
| Collision Monitor | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Read monotonic time; detect wall-clock rollback before composing an ID. | Proves correctness and supports controlled recovery. It prevents ID Decoder Tool from also owning the contract and failure behavior of Metrics / Capacity. | 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 “Two processes share worker ID” to ID Decoder Tool. | 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 Collision Monitor boundary before extracting or scaling it. |
| Metrics / Capacity | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Pack timestamp, region, worker, and per-millisecond sequence into configured bits. | Proves correctness and supports controlled recovery. It prevents Collision Monitor from also owning the contract and failure behavior of Audit Log. | 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 “Sequence overflows one millisecond” to Collision Monitor. | 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 Metrics / Capacity boundary before extracting or scaling it. |
| Audit Log | Preserves durable ordering, replay, and consumer checkpoints. In this design it participates in: When sequence exhausts, wait for next tick or consume a leased numeric range. | Proves correctness and supports controlled recovery. It prevents Metrics / Capacity from also owning the contract and failure behavior of operators and repair tooling. | Call every downstream consumer synchronously. That couples user latency and availability to analytics, notification, indexing, and audit dependencies. Here that simpler choice would couple “Epoch/bit layout changes during rollout” to Metrics / Capacity. | 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 Audit Log boundary before extracting or scaling it. |