Repository navigation
docs: refresh Java, TypeScript, and Python references - #300
zhongkechen wants to merge 4 commits into
Conversation
|
|
||
| A `FileSystemSerializer` built without an inner serializer only resolves the global | ||
| serializer when it is used through a per-operation slot (for example | ||
| `StepConfig.Serializer`). Using it without a bound inner serializer throws |
There was a problem hiding this comment.
C# failure mode is half right. NotSupportedException is thrown when used as a plain ILambdaSerializer. InvalidOperationException is thrown only when the inner serializer is missing.
There was a problem hiding this comment.
aws-durable-execution-docs PR #303: complete .NET operation and testing references doesn't change this file. Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| using Amazon.Lambda.Serialization.SystemTextJson; | ||
|
|
||
| // The inner serializer controls the on-the-wire format. Wrap one to compress results before | ||
| // they are written to the filesystem — FileSystemSerializer just handles storage. |
There was a problem hiding this comment.
Four em-dashes, plus long comments that repeat the page prose. Both break the authoring guide.
There was a problem hiding this comment.
aws-durable-execution-docs PR #303: complete .NET operation and testing references doesn't change this file. Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| Not yet supported in the .NET SDK. Set `FileSystemSerializer` per operation via | ||
| `StepConfig.Serializer` (or `ItemSerializer` for Map/Parallel). An execution-wide default | ||
| serializer is not supported. The `ILambdaSerializer` you | ||
| register at the host boundary applies to any operation that does not set its own. |
There was a problem hiding this comment.
"Not yet supported" and "is not supported" say the same thing, and "yet" promises future work. The Java tab gives the reason, and the same reason applies here: FileSystemSerializer throws NotSupportedException at the host boundary. How about this?
The FileSystem serializer cannot be the handler-wide default, because the host-boundary serializer also handles Lambda input and output, which have no operation identity. Set it per operation through
StepConfig.SerializerorItemSerializer.
There was a problem hiding this comment.
Closed here because the C# filesystem-guide changes were removed from #300. The handler-boundary explanation remains applicable to #280: plain ILambdaSerializer calls lack operation identity and throw NotSupportedException. The narrowed #303 excludes this guide, so this is a scope resolution rather than a landed fix there.
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| var config = new CallbackConfig | ||
| { | ||
| Timeout = TimeSpan.FromHours(1), | ||
| Serializer = new DefaultLambdaJsonSerializer(), |
There was a problem hiding this comment.
DefaultLambdaJsonSerializer is also the usual host-boundary serializer, so this override looks the same as the default. The Step and Map examples use CamelCaseLambdaJsonSerializer. Could this one use it too?
There was a problem hiding this comment.
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
I'll split C#/.Net doc updates into separate PRs and let @GarrettBeatty handle them |
Update Java, TypeScript, and Python references for released serialization, plugin factories, telemetry, operation, and testing APIs. Keep .NET changes in a separate pull request. Validate review feedback against released SDK source. Fix Python invoke registration, plugin failure timing, hook snippets, telemetry details, and shared filesystem guidance. Keep migration notes in the upgrade summaries. Run formatting, spelling, example-reference and generated-HTML checks, plus a clean Zensical build. Compile the eight TypeScript hook snippets and run focused TypeScript and Python behavior checks.
4c3768b to
b6aa899
Compare
Clarify null defaults and per-branch serializer precedence in one place. Remove repeated filesystem constructor guidance and restore spacing in the examples after removing redundant comments. Recheck the C# feedback carried from PR #300 into PR #303. Documentation quality checks, example references, the clean site build, and generated HTML links pass. Example changes contain only whitespace.
Document missing operation config signatures, incremental parallel branches, custom subtype rules, terminal serializer failures, and local checkpoint-token omission for Core 2.2.0 and Testing 1.1.0. Leave the serialization guide and its examples to PRs #279 and #280. Keep shared prose and other language updates in PR #300. All remaining Markdown changes are inside C# tabs; no file overlaps #279 or #280. Validate formatting, spelling, snippets, vendored assets, rendered links, and a clean Zensical build. Retained examples match the previously compiled and runtime-checked versions.
| Set `CallbackConfig.Serializer` to deserialize the callback payload with a specific | ||
| `ILambdaSerializer`. When it is `null` (default), the payload the external system | ||
| delivers is deserialized with the `ILambdaSerializer` registered at the host boundary. | ||
| Only the deserialize path is used for callbacks. |
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| Set `MapConfig<TItem>.ItemSerializer` (and `ParallelConfig.ItemSerializer`) to serialize | ||
| each item / branch **result** with a specific `ILambdaSerializer`. When `null` (default), | ||
| item results use the `ILambdaSerializer` registered at the host boundary. There is no | ||
| separate whole-result serializer: the aggregated batch envelope (per-item statuses and | ||
| completion reason) is an SDK-internal, source-generated structure and is not | ||
| user-serialized: only the per-item results are. |
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| holds only the pointer. `FileSystemStorageMode.Overflow` keeps the result inline until it | ||
| would exceed the durable execution checkpoint size limit, then spills to a file. |
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| Not yet supported in the .NET SDK. Set `FileSystemSerializer` per operation via | ||
| `StepConfig.Serializer` (or `ItemSerializer` for Map/Parallel). An execution-wide default | ||
| serializer is not supported. The `ILambdaSerializer` you | ||
| register at the host boundary applies to any operation that does not set its own. |
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
| var config = new CallbackConfig | ||
| { | ||
| Timeout = TimeSpan.FromHours(1), | ||
| Serializer = new DefaultLambdaJsonSerializer(), |
There was a problem hiding this comment.
Not addressed in the current version of aws-durable-execution-docs PR #280: document the .NET FileSystem serializer.
Describe pause and resume, subtype comparisons, and early completion in terms of current behavior. Keep migration steps in the upgrade guide. Make ESLint guidance easier to find and link to the current plugin README for configuration details.
Restore TypeScript and Python path, preview, and default-serdes guidance. Qualify Java callback and invoke requirements and describe current APIs. Remove the incorrect S3 Files durability warning and release-bound prose.
Remove release-specific installation and migration text from the reference pages. Clarify invocation trace headers, chained-invoke parenting, plugin factory validation, and hook waiting semantics. Link Powertools logging to the shared execution metadata reference and remove confusing fallback trace and memory attribute details.
The reference pages still register plugin instances rejected by SDK 3, label Java filesystem serialization as unavailable, and omit released operation and testing APIs. Update the Java, TypeScript, and Python references and examples for the releases through October 26, 2026.
The changes cover per-invocation plugin factories, Java context-aware and filesystem serialization, OpenTelemetry setup and trace behavior, telemetry exporter/MCP APIs, custom subtypes, batch results, and local testing controls. Review corrections include Python invoke-target registration by name, TypeScript plugin-load failure timing and class-method snippets, precise filesystem storage modes, named Java provider interfaces and fatal errors, and the telemetry write-access result and prompt lifecycle.
Scope and related PRs
docs: add SDK 3 upgrade summaries #298 contains the SDK 3 upgrade summaries, including the TypeScript Testing SDK peer-range and OpenTelemetry memory-unit migration notes. Those migration notes are not repeated in the reference sections here.
.NET serialization guidance and examples belong to docs(csharp): document the per-operation serializer override (Step/Callback/Invoke/WaitForCondition/ChildContext + Map/Parallel ItemSerializer) #279/docs(csharp): document the .NET FileSystem serializer (#2540) #280. The 11 reopened .NET review threads remain outstanding there; docs: complete .NET operation and testing references #303 covers operation/testing references and does not change the serialization guide or examples.
Validation
FAILEDon every invocation before the handler runs and verify filesystemundefined/nulland overflow round trips.Noneand overflow round trips.git diff --checkpassed. Validation harnesses remain outside the PR.Generated HTML and the browser DOM were inspected directly. Chromium loaded the localhost preview but produced blank screenshots, so visual screenshot verification was unavailable. No SDK implementation changed. Cloud integration and full cross-SDK conformance were not run.