aws / aws/aws-durable-execution-sdk-python
[Feature]: Add targeted retries for retryable SerDes failures
- Ngôn ngữ chính
- Python
- Star
- 53
- Fork
- 25
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 40
Mô tả
## 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.
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách xác định phân loại RetryableSerDesError hiện có và lời gọi SerDes đã được cấu hình được mô tả trong issue; so sánh hành vi ở cấp stage trong aws/aws-durable-execution-sdk-java#648. Hoàn tất nghĩa là chỉ các lỗi SerDes có thể retry mới được retry bằng các bài kiểm thử policy có giới hạn và mang tính tất định, trong khi các lỗi không thể retry và thông tin chi tiết của exception cuối cùng vẫn không thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- backend
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 52/100