Which compensation strategy prevents duplicate writes in UML activity retries?
0 reputation · 23 Jan 2021, 06:20 UTC
UML 2.5 activity diagrams model concurrent branches using fork and join nodes, and support compensation actions to undo partial work when errors occur. A precise design goal is to determine whether compensation handlers should be automatically retried following a write failure, or whether explicit user intervention is required to prevent duplicate original writes. The specification does not define a standard retry mechanism for write operations, leaving tool vendors to implement proprietary extensions with varying semantics. This ambiguity creates risk: automatic retry may re-execute the original write, while delayed intervention may leave the system in an inconsistent state without compensation executing.
Which approach preserves exactly-once semantics across diverse UML implementations? Does the specification need a normative retry policy for compensation actions, or should tool vendors define extension points? When should explicit intervention be mandated to avoid silent data loss?