{"id":"2pc-has-design-implementation-gap","text":"Two-phase commit has a systematic gap between its safety design and implementation: the coordinator has a known blocking window between logging and sending the decision, timeouts are accepted as a parameter but never enforced, and recovery requires all participants to be available — defeating the protocol's availability goals.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["2pc-blocking-window","2pc-timeout-unused","recovery-requires-participant-availability"],"outlist":[],"label":"Three independent implementation gaps each weaken a distinct 2PC safety property (atomicity, liveness, recovery)"}],"dependents":["2pc-safety-gaps-compound-under-synchronous-simulation"],"metadata":{"last_reviewed":"2026-05-30T09:01:17","review_result":"pass"},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"2pc-has-design-implementation-gap","truth_value":"IN","reason":"SL justification valid","antecedents":["2pc-blocking-window","2pc-timeout-unused","recovery-requires-participant-availability"],"label":"Three independent implementation gaps each weaken a distinct 2PC safety property (atomicity, liveness, recovery)"},{"node":"2pc-blocking-window","truth_value":"IN","reason":"premise"},{"node":"2pc-timeout-unused","truth_value":"IN","reason":"premise"},{"node":"recovery-requires-participant-availability","truth_value":"IN","reason":"premise"}]}}