[Feature]: Add targeted retries for retryable SerDes failures

Abierto
#681 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
52/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Comienza localizando la clasificación existente de RetryableSerDesError y la llamada configurada a SerDes descrita en el issue; compara el comportamiento a nivel de etapa en aws/aws-durable-execution-sdk-java#648. Se considera terminado cuando solo los fallos reintentables de SerDes se reintentan con pruebas de política acotadas y deterministas, mientras que los errores no reintentables y los detalles de la excepción final permanecen sin cambios.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
58
Forks
32
Merge medio
1 d 6 h
PR fusionados (30 d)
80

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aws/aws-durable-execution-sdk-python

Todos los issues de aws/aws-durable-execution-sdk-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.