[Feature]: Expand SerDesContext with payload and operation metadata

Abierto
#680 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Comienza localizando la dataclass congelada SerDesContext y las rutas de serialización y deserialización gestionadas por el SDK que se enumeran en el issue. Revisa cómo execution input/output, steps, callbacks, invoke payloads, exceptions y retries pasan actualmente el contexto. Se considera terminado cuando los campos de metadatos opcionales están documentados y se rellenan de forma coherente, con pruebas de paridad que cubran cada ruta de payload y el comportamiento de replay.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Python
Estrellas
58
Forks
32
Merge medio
1 d 6 h
PR fusionados (30 d)
80

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de aws/aws-durable-execution-sdk-python

Todos los issues de aws/aws-durable-execution-sdk-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.