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

[Feature]: Expand SerDesContext with payload and operation metadata

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

説明

## What would you like?

Expand `SerDesContext` beyond `operation_id` and `durable_execution_arn` so context-aware SerDes implementations can identify the exact payload being processed.

Useful metadata includes:

- stable entity ID;
- payload kind, such as execution input/output, operation result, invoke payload, state, or exception;
- operation name, parent ID, type, and subtype;
- retry attempt number when applicable.

This enables safer external-storage ownership rules, better diagnostics, and stable naming without parsing operation IDs.

## Possible Implementation

- Add optional fields to the frozen `SerDesContext` dataclass while preserving `operation_id` and `durable_execution_arn`.
- Populate the fields for every SDK-managed serialization and deserialization path, including execution input/output, steps, child contexts, callbacks, wait-for-condition state, invoke payload/results, exceptions, and retry attempts.
- Document which fields are always present and which are operation-specific.
- Ensure the same context is passed to every attempt of a retryable SerDes operation.
- Add parity tests that capture context from each payload path and validate first execution versus replay.
- Use the richer context when implementing owner-bound filesystem envelopes and safely rebinding forwarded exception data.

## Is this a breaking change?

No. New dataclass fields should have defaults so existing custom SerDes implementations and direct context construction continue to work.

## Does this require an RFC?

Yes.

## Additional Context

The Java SDK work in aws/aws-durable-execution-sdk-java#648 passes payload kind, stable entity identity, operation metadata, and attempt number explicitly to SerDes stages.

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

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

調査の方向性

まず、issue に記載されている frozen な SerDesContext dataclass と、SDK が管理するシリアライズおよびデシリアライズのパスを特定します。execution input/output、steps、callbacks、invoke payloads、exceptions、retries が現在どのように context を渡しているかを確認します。オプションのメタデータフィールドが文書化され、一貫して設定され、各 payload path と replay behavior をカバーする parity tests が用意されていれば完了です。

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

評価

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

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

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