aws / aws/aws-durable-execution-sdk-python

[Feature]: Add composable SerDes transformation pipelines

Đang mở
#677 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement needs-triage parity pkg:sdk
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 composable SerDes processing pipeline while preserving the existing object-to-string `SerDes[T]` API as the value-codec boundary.

Today, transformations such as filesystem offloading, compression, encryption, signing, or custom envelopes must each wrap and own another complete `SerDes`. This makes independent transformations difficult to reuse or reorder.

The proposed model is:

```text
value -> root SerDes -> string stage -> string stage -> checkpoint
value <- root SerDes <- string stage <- string stage <- checkpoint
```

## Possible Implementation

- Introduce a synchronous `SerDesStage` protocol whose serialize/deserialize methods accept and return `str` plus `SerDesContext`.
- Add a `ComposableSerDes` or composition helper that starts with one existing `SerDes[T]`, applies stages in forward order during serialization, and reverses them during deserialization.
- Require stages to emit a self-identifying/versioned format. During deserialization, a stage should:
- reverse valid input in its own format;
- raise `SerDesError` for malformed input that identifies itself as that stage;
- return unrecognized input unchanged.
- Keep existing `SerDes` implementations and configuration APIs backward compatible.
- Allow `FileSystemSerDes` functionality to be exposed as a stage so callers can choose any root value codec and can place compression, encryption, or signing before or after storage as appropriate.
- Add tests for stage order, pass-through of external invocation input, null/empty values, malformed recognized envelopes, and custom value types.

## Is this a breaking change?

No.

## Does this require an RFC?

Yes.

## Additional Context

Python's current `FileSystemSerDes` already supports a configurable inner value SerDes. A pipeline would separate that value-codec responsibility from reusable string transformations instead of adding another nested-wrapper layer. A comparable Java design is being developed in aws/aws-durable-execution-sdk-java#648.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách đọc các triển khai SerDes và FileSystemSerDes hiện có cùng các API cấu hình của chúng để hiểu ranh giới value-codec hiện tại. Xác định stage protocol và composition semantics thông qua RFC bắt buộc, sau đó thêm các bài kiểm thử bao quát thứ tự, việc truyền nguyên trạng đầu vào, các giá trị null và rỗng, các envelope đã được nhận dạng nhưng không đúng định dạng, cùng các kiểu giá trị tùy chỉnh, đồng thời duy trì khả năng tương thích ngược.

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
30/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.