Skip to content

docs(serialization): document first-run round trip and retryable serdes error - #275

Open
ayushiahjolia wants to merge 1 commit into
mainfrom
fix/serialization-roundtrip-v2
Open

docs(serialization): document first-run round trip and retryable serdes error#275
ayushiahjolia wants to merge 1 commit into
mainfrom
fix/serialization-roundtrip-v2

Conversation

@ayushiahjolia

@ayushiahjolia ayushiahjolia commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Issue #, if available: aws/aws-durable-execution-sdk-python#663

Description of changes:
Document two 2.x serialization behaviors:

  • First-run round trip: step, child contexts, map, parallel, and wait_for_condition now serialize then deserialize the result on the first run, so first-run output matches replay. invoke and wait are unaffected.
  • A non-identity custom SerDes now changes the first-run value too.
  • Python note: wait_for_condition round-trips initial_state.
  • Serdes errors: a custom SerDes raises SerDesError for a permanent failure (no retry) or RetryableSerDesError for a transient one (fails the invocation so the backend retries).

Checks: mdformat, codespell, check_example_refs, zensical build all pass.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Comment thread docs/sdk-reference/state/serialization.md Outdated
@ayushiahjolia
ayushiahjolia marked this pull request as ready for review August 31, 2026 23:05
@ayushiahjolia
ayushiahjolia deployed to ai-pr-review-runtime August 31, 2026 23:05 — with GitHub Actions Active
@yaythomas

Copy link
Copy Markdown
Contributor

This language-neutral section is not accurate for every SDK.

In the current C# SDK, step, child-context, wait-for-condition, map, and parallel operations serialize their checkpoint but return the raw first-run value; they deserialize only on replay. C# also uses a single ILambdaSerializer, not a per-operation custom SerDes.

Java defaults to round-tripping but allows it to be disabled with DurableConfig.withDeserializeAfterSerialization(false).

Please move this behavior into language tabs: document TypeScript/Python round-tripping, Java’s configurable behavior, and C#’s raw-first-run/replay-deserialization behavior. This will also remove the Python-specific wait_for_condition spelling from shared prose.

@ayushiahjolia
ayushiahjolia force-pushed the fix/serialization-roundtrip-v2 branch from 63bdcbc to e271950 Compare September 1, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants