[Feature]: Add targeted retries for retryable SerDes failures

Aperta
#681 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
52/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia individuando la classificazione esistente di RetryableSerDesError e la chiamata SerDes configurata descritta nell’issue; confronta il comportamento a livello di stage in aws/aws-durable-execution-sdk-java#648. Il lavoro è completo quando vengono ritentati solo i fallimenti SerDes ritentabili, con test della policy limitati e deterministici, mentre gli errori non ritentabili e i dettagli dell’eccezione finale rimangono invariati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
58
Fork
32
Merge medio
1g 6h
PR unite (30g)
80

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aws/aws-durable-execution-sdk-python

Tutte le issue di aws/aws-durable-execution-sdk-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.