Enum CompensationRecovery
What an operator does about a compensation that failed (ยง11.30).
public enum CompensationRecovery
Fields
Retry = 0Run the failed compensation again, from the same point.
The answer when the cause was transient โ the downstream system is back.
Skip = 1Treat this step as undone and carry on unwinding the rest.
The answer when the step was undone by hand, or turns out to need no undoing. It records a decision rather than a fact, which is why it is an operator action and never automatic.
Abandon = 2Stop unwinding and fail the instance, leaving the remaining steps done.
The answer when continuing would do more harm than the half-undone state already has. Terminal, and deliberately so: it is a decision that the remaining work should stand.
Remarks
A half-undone saga is deliberately parked rather than forced to a terminal state, because it is exactly where a human should look. These are the three ways out, and the engine cannot choose between them: which is right depends on what the compensation was trying to undo and whether it is now safe to try again โ facts the engine does not have.