Start here. This is the direct spoken answer to practice first.
Why this question matters
Distributed calls can succeed remotely while their response, callback, or follow-up message is lost. The system needs a durable way to discover truth and move the workflow to a valid state without repeating an irreversible effect.
I do not retry the charge blindly because the timeout means the outcome is unknown, not necessarily failed. I look up the payment using the original provider idempotency key or operation reference. If the provider confirms success, I record that result and advance the pending order idempotently. If it confirms failure, I allow the workflow to retry under the same business operation. If the provider cannot decide, the order remains in an explicit pending-review state.