Deixe o progresso parcial visível
Atribua a cada etapa um estado persistente, como pendente, em andamento, concluída ou falha, além de erro útil e identificador de correlação. Isso diferencia uma interrupção temporária de uma ação concluída cuja resposta se perdeu.
Antes de tentar de novo, determine se a etapa é idempotente. Para envio de mensagem, cobrança ou criação de recurso, use uma chave de idempotência estável ou verifique o resultado existente para não duplicar o efeito.
Retome de um ponto de controle conhecido
Persista os dados necessários para reiniciar na etapa com falha e confirme que as saídas anteriores continuam válidas. Se os dados de origem mudaram, execute novamente as etapas dependentes de forma deliberada, sem misturar versões.
Defina um limite de tentativas e intervalos para falhas temporárias; encaminhe erros permanentes ou esgotados para uma fila de revisão acionável. Avise qual execução foi afetada e qual a próxima ação, sem esconder a falha em um status geral de sucesso.