| Hall Panel | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Deduplicate hall/cabin requests and snapshot all eligible car states. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents the external caller from also owning the contract and failure behavior of Cabin Panel. | 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 “Car stops reporting position” 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 Hall Panel boundary before extracting or scaling it. |
| Cabin Panel | Owns client protocol, request identity, retry, and resume behavior. In this design it participates in: Dispatch strategy scores direction, distance, load, stops, and service mode. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Hall Panel from also owning the contract and failure behavior of Building 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 “Door obstruction repeats” to Hall Panel. | 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 Cabin Panel boundary before extracting or scaling it. |
| Building Controller | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Assign request by generation; car controller inserts a legal stop into its plan. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Cabin Panel from also owning the contract and failure behavior of Dispatch Strategy. | 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 “Duplicate hall request survives assignment” to Cabin Panel. | 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 Building Controller boundary before extracting or scaling it. |
| Dispatch Strategy | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: State machine commands motion only with doors locked and safety interlocks healthy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Building Controller from also owning the contract and failure behavior of Request Deduper. | 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 “Emergency overrides normal schedule” to Building Controller. | 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 Dispatch Strategy boundary before extracting or scaling it. |
| Request Deduper | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Sensor events advance floor/door states; faults remove car and reassign outstanding requests. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Dispatch Strategy from also owning the contract and failure behavior of Car 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 “Destination-control demand spikes” to Dispatch Strategy. | 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 Request Deduper boundary before extracting or scaling it. |
| Car Controller | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Deduplicate hall/cabin requests and snapshot all eligible car states. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Request Deduper from also owning the contract and failure behavior of Car State Machine. | 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 “Car stops reporting position” to Request Deduper. | 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 Car Controller boundary before extracting or scaling it. |
| Car State Machine | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Dispatch strategy scores direction, distance, load, stops, and service mode. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Car Controller from also owning the contract and failure behavior of Motion 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 “Door obstruction repeats” to Car Controller. | 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 Car State Machine boundary before extracting or scaling it. |
| Motion Controller | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Assign request by generation; car controller inserts a legal stop into its plan. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Car State Machine from also owning the contract and failure behavior of Door 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 “Duplicate hall request survives assignment” to Car State Machine. | 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 Motion Controller boundary before extracting or scaling it. |
| Door Controller | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: State machine commands motion only with doors locked and safety interlocks healthy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Motion Controller from also owning the contract and failure behavior of Floor Sensors. | 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 “Emergency overrides normal schedule” to Motion Controller. | 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 Door Controller boundary before extracting or scaling it. |
| Floor Sensors | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Sensor events advance floor/door states; faults remove car and reassign outstanding requests. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Door Controller from also owning the contract and failure behavior of Load Sensor. | 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 “Destination-control demand spikes” to Door Controller. | 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 Floor Sensors boundary before extracting or scaling it. |
| Load Sensor | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Deduplicate hall/cabin requests and snapshot all eligible car states. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Floor Sensors from also owning the contract and failure behavior of Safety Interlock. | 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 “Car stops reporting position” to Floor Sensors. | 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 Sensor boundary before extracting or scaling it. |
| Safety Interlock | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Dispatch strategy scores direction, distance, load, stops, and service mode. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Load Sensor from also owning the contract and failure behavior of Fault Manager. | Embed policy in every caller. Rules then drift by deployment version and emergency changes require fleet-wide redeployment. Here that simpler choice would couple “Door obstruction repeats” to Load Sensor. | 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 Safety Interlock boundary before extracting or scaling it. |
| Fault Manager | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: Assign request by generation; car controller inserts a legal stop into its plan. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Safety Interlock from also owning the contract and failure behavior of Maintenance Console. | 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 “Duplicate hall request survives assignment” to Safety Interlock. | 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 Fault Manager boundary before extracting or scaling it. |
| Maintenance Console | Owns one bounded domain decision, transition, or operational capability. In this design it participates in: State machine commands motion only with doors locked and safety interlocks healthy. | Separates a distinct scale, ownership, policy, or failure boundary. It prevents Fault Manager 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 “Emergency overrides normal schedule” to Fault Manager. | 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 Maintenance Console boundary before extracting or scaling it. |