7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/smith/workflow/split_step_persistence/dispatch_confirmation.rb', line 7
def confirm_prepared_step_dispatch!
confirmation_claimed = false
rolled_back = false
claim_dispatch_confirmation!
confirmation_claimed = true
payload = @split_step_adapter.fetch(@split_step_persistence_key)
return confirm_committed_dispatch! if persisted_split_step_payload?(payload, @split_step_preparation_payload)
rolled_back = recover_rolled_back_dispatch!(payload)
raise WorkflowError, "the persisted split-step dispatch claim is not committed"
rescue StandardError
mark_unconfirmed_dispatch_unknown! if confirmation_claimed && !rolled_back
raise
end
|