Skip to content

docs: refresh Java, TypeScript, and Python references - #300

Open
zhongkechen wants to merge 4 commits into
mainfrom
docs/refresh-released-sdk-reference
Open

zhongkechen wants to merge 4 commits into
mainfrom
docs/refresh-released-sdk-reference

Conversation

@zhongkechen

@zhongkechen zhongkechen commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

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

Validation

  • Checked review claims against released TypeScript Core 3.0.0, Python Core 3.0.0/Testing 1.4.0, Java 3.0.0, and telemetry MCP/exporter 1.0 source.
  • Zensical 0.0.40 clean build, full-site Markdown formatting/spelling, hidden-character checks, example-reference checks, and vendored-asset integrity checks passed. All 694 examples are referenced.
  • Checked local links and anchors across all 18 changed rendered pages.
  • Compiled all eight TypeScript hook snippets inside plugin classes, plus the complete example, against Core 3.0.0. Runtime checks confirm invalid factories return FAILED on every invocation before the handler runs and verify filesystem undefined/null and overflow round trips.
  • Python runtime checks confirm bare/qualified-name invoke registration, failure when registering the ARN itself, and filesystem None and overflow round trips.
  • git diff --check passed. Validation harnesses remain outside the PR.
  • The follow-up review fixes address all 32 current TypeScript, Python, and Java threads. Re-ran the clean build and full-site quality checks, and verified local links and anchors on all 10 pages changed by the follow-up. The review wording was checked against released SDK source and the Lambda API.

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.

@zhongkechen
zhongkechen deployed to ai-pr-review-runtime October 27, 2026 20:35 — with GitHub Actions Active
@zhongkechen zhongkechen changed the title docs: refresh references for October SDK releases docs: refresh references for recent SDK releases Oct 27, 2026
@SilanHe
SilanHe self-requested a review October 28, 2026 19:44
SilanHe

This comment was marked as duplicate.

Comment thread docs/testing/api-reference.md Outdated
Comment thread docs/sdk-reference/operations/parallel.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/state/serialization.md Outdated
Comment thread docs/sdk-reference/state/serialization.md Outdated

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in the new PR #303

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Four em-dashes, plus long comments that repeat the page prose. Both break the authoring guide.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in the new PR #303

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread docs/testing/api-reference.md Outdated

@SilanHe SilanHe left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be easier to review if we split this doc PR up into smaller PRs per language or per associated per language PRs

Comment thread docs/sdk-reference/error-handling/errors.md Outdated
Comment thread docs/sdk-reference/languages/typescript/index.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/plugins.md Outdated
Comment thread docs/sdk-reference/state/serialization.md Outdated
Comment on lines +1078 to +1081
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"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.Serializer or ItemSerializer.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread docs/testing/api-reference.md Outdated
var config = new CallbackConfig
{
Timeout = TimeSpan.FromHours(1),
Serializer = new DefaultLambdaJsonSerializer(),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Closed here after removing the C# serialization examples from #300. The callback example remains owned by #279/#280, where changing it to CamelCaseLambdaJsonSerializer would make the override visible. The narrowed #303 excludes that example; it has not applied this correction to those PRs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread examples/typescript/sdk-reference/plugins/complete-plugin.ts
@zhongkechen

Copy link
Copy Markdown
Contributor Author

might be easier to review if we split this doc PR up into smaller PRs per language or per associated per language PRs

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.
@zhongkechen
zhongkechen force-pushed the docs/refresh-released-sdk-reference branch from 4c3768b to b6aa899 Compare October 28, 2026 22:01
@zhongkechen zhongkechen changed the title docs: refresh references for recent SDK releases docs: refresh Java, TypeScript, and Python references Oct 28, 2026
zhongkechen added a commit that referenced this pull request Oct 28, 2026
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.
zhongkechen added a commit that referenced this pull request Oct 28, 2026
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.
Comment thread docs/sdk-reference/state/serialization.md
Comment thread docs/sdk-reference/state/serialization.md
Comment thread docs/sdk-reference/state/serialization.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/languages/typescript/index.md Outdated
Comment thread docs/sdk-reference/observability/logging.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment thread docs/sdk-reference/observability/opentelemetry.md Outdated
Comment on lines +388 to +391
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +445 to +450
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +843 to +844
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines +1078 to +1081
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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

var config = new CallbackConfig
{
Timeout = TimeSpan.FromHours(1),
Serializer = new DefaultLambdaJsonSerializer(),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

This branch had an error being deployed

1 failed deployment
ai-pr-review-runtime — e34803b9 Deployed Oct 29, 2026 by zhongkechen via ai-pr-review / Codex review / Generate Codex review #162
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.

3 participants