Skip to content

docs(csharp): document the .NET FileSystem serializer (#2540) - #280

Open
GarrettBeatty wants to merge 4 commits into
aws:mainfrom
GarrettBeatty:filesystem-serializer-docs
Open

docs(csharp): document the .NET FileSystem serializer (#2540)#280
GarrettBeatty wants to merge 4 commits into
aws:mainfrom
GarrettBeatty:filesystem-serializer-docs

Conversation

@GarrettBeatty

Copy link
Copy Markdown
Contributor

Summary

Fills in the C# tabs of the existing FileSystem serdes section of the serialization reference, documenting the new .NET FileSystemSerializer. Companion to the SDK PR aws/aws-lambda-dotnet#2558.

Stacked on #279. This branch is cut from #279's branch (per-operation-serializer-docs), so until #279 merges to main this PR's diff also shows #279's two commits. Review/merge #279 first; the only commit unique to this PR is docs(csharp): document the FileSystem serializer.

What changed

C# tabs (previously "Not available") now covered in docs/sdk-reference/state/serialization.md:

  • WalkthroughFileSystemSerializer wrapping an inner ILambdaSerializer, passed via StepConfig.Serializer (and Child/WaitForCondition/Map/Parallel).
  • Constructor signatureinner, basePath, storageMode, pathEncoding.
  • Inner serializer / compression — the .NET-specific angle: the inner serializer controls the on-the-wire format; a gzip wrapper compresses before writing to disk.
  • Storage modesAlways vs Overflow.
  • Path encodingUri vs Hash.

New C# example snippets under examples/csharp/sdk-reference/serialization/ (FileSystemSerdesWalkthrough / Signature / Compression / Overflow / PathEncoding).

Noted as follow-ups (not yet in the .NET SDK)

  • Preview & PII masking — not supported yet in the .NET serializer.
  • Execution-wide default serializer — .NET is per-operation only for now (mirrors the deferred hook in #2558).

The .NET SDK now supports an optional per-operation `Serializer` (an ILambdaSerializer)
on StepConfig, CallbackConfig, InvokeConfig, WaitForConditionConfig<TState>, and
ChildContextConfig; when null the globally-registered serializer is used.

Update the C# tabs on the serialization page (Default serialization, SerDes interface,
StepConfig, CallbackConfig) and the StepConfigExample/CallbackConfigExample examples.
Map/Parallel C# tabs left as-is pending two-level (item + whole-result) support.
MapConfig<TItem> and ParallelConfig now expose ItemSerializer for each item/branch result;
the aggregated batch envelope is SDK-internal and not user-serialized (no whole-result
serializer). Update the Map/Parallel C# tab and MapConfigExample.
Fill in the C# tabs of the FileSystem serdes section: walkthrough, constructor signature,
inner-serializer/compression, storage modes (Always/Overflow), and path encoding (Uri/Hash),
with matching csharp example snippets. Note preview/masking and an execution-wide default
serializer as planned follow-ups. Documents aws/aws-lambda-dotnet#2558.
Document the new FileSystemSerializer(basePath, storageMode?, pathEncoding?)
constructor that reuses the host-boundary ILambdaSerializer as the inner
(bound by the durable runtime when used through a per-operation slot), and
note that an explicit inner wins and that using it with no bound inner throws.
@GarrettBeatty
GarrettBeatty marked this pull request as ready for review September 8, 2026 18:46
@GarrettBeatty
GarrettBeatty deployed to ai-pr-review-runtime September 8, 2026 18:46 — with GitHub Actions Active
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.

1 participant