[Feature]: Expand SerDesContext with payload and operation metadata

Aberta
#680 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
python
Domínio
backend

Direção de pesquisa

Comece localizando a dataclass congelada SerDesContext e os caminhos de serialização e desserialização gerenciados pelo SDK listados na issue. Revise como execution input/output, steps, callbacks, invoke payloads, exceptions e retries passam o contexto atualmente. O trabalho estará concluído quando os campos de metadados opcionais estiverem documentados e preenchidos de forma consistente, com testes de paridade cobrindo cada caminho de payload e o comportamento de replay.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement parity pkg:sdk

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.

Linguagem predominante
Python
Estrelas
58
Forks
32
Merge médio
1d 6h
PRs com merge (30d)
80

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de aws/aws-durable-execution-sdk-python

Todas as issues de aws/aws-durable-execution-sdk-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.