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

[Feature]: Add composable SerDes transformation pipelines

オープン
#677 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement needs-triage parity pkg:sdk
主要言語
Python
スター
53
フォーク
25
平均マージ
1日 19時間
マージ済み PR(30日)
40

説明

## 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.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、既存の SerDes と FileSystemSerDes の実装、およびそれらの設定 API を読み、現在の value-codec の境界を理解します。必要な RFC によって stage protocol と composition semantics を定義し、その後、順序、入力のパススルー、null と空の値、認識された malformed envelope、カスタム値型を対象とするテストを追加し、後方互換性を維持します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
backend
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。