[Feature]: Add targeted retries for retryable SerDes failures

Aberta
#681 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
52/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Comece localizando a classificação existente de RetryableSerDesError e a chamada configurada de SerDes descrita na issue; compare o comportamento no nível do stage em aws/aws-durable-execution-sdk-java#648. Considera-se concluído quando somente falhas de SerDes que podem ser repetidas são repetidas, com testes de policy limitados e determinísticos, enquanto os erros não repetíveis e os detalhes da exceção final permanecem inalterados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement parity pkg:sdk

What would you like?

Add a targeted retry decorator for transient SerDes failures.

Python already exposes RetryableSerDesError, but the configured SerDes call is currently propagated after the first failure. External-storage transformations such as S3 Files/EFS access can fail transiently without requiring the entire durable operation to be rerun.

Possible Implementation

  • Provide a RetrySerDes decorator, and make it usable as a stage if/when a composable SerDes pipeline is added.
  • Retry only RetryableSerDesError; propagate SerDesError and other non-retryable failures immediately.
  • Accept a bounded retry policy with maximum attempts and optional backoff/jitter, reusing existing retry-strategy concepts where that does not imply durable checkpoints.
  • Pass the same value/data and SerDesContext to every attempt.
  • Preserve the final exception type, causal chain, error data, and stack information after exhaustion.
  • Ensure retries wrap only the selected SerDes transformation rather than restarting the value codec or durable operation.
  • Add deterministic tests with an injected sleeper/clock so retry tests do not depend on real delays.

Is this a breaking change?

No.

Does this require an RFC?

No.

Additional Context

This builds on the existing RetryableSerDesError classification rather than introducing another recoverability mechanism. The Java SDK implementation in aws/aws-durable-execution-sdk-java#648 provides a stage-level retry decorator with the same targeted behavior.

Linguagem predominante
Python
Estrelas
58
Forks
32
Merge médio
1d 6h
PRs com merge (30d)
80

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de aws/aws-durable-execution-sdk-python

Todas as issues de aws/aws-durable-execution-sdk-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.