Skip to content

docs: add payload offloader examples and E2E coverage - #683

Open
zhongkechen wants to merge 1 commit into
issue-463-payload-offloader-testingfrom
issue-463-payload-offloader-examples
Open

docs: add payload offloader examples and E2E coverage#683
zhongkechen wants to merge 1 commit into
issue-463-payload-offloader-testingfrom
issue-463-payload-offloader-examples

Conversation

@zhongkechen

@zhongkechen zhongkechen commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Stack

Layer PR Scope
Architecture #678 ADR-006 and design decision
1 #649 Core API, envelopes, runtime, operations
2 #681 Filesystem implementation and retries
3 #682 Testing utilities and integration coverage
4 #683 (this PR) Examples, E2E infrastructure, and implementation docs

Scope

  • add the filesystem payload-offloader example
  • generate EFS/VPC/access-point infrastructure and filesystem-enabled Lambda stacks for Java 17/21/25
  • add cloud assertions for offloaded results and previews
  • document configuration, storage durability, lifecycle, retries, chained-invoke formats, ownership, integrity, and preview behavior
  • update README/example listings and generator tests

Architecture decision records and general design documentation remain in #678 and are intentionally not modified here.

Validation

  • cumulative stack: full eight-module Maven reactor on Java 17
  • mvn -pl examples -am test
  • python3 -m unittest examples/test_generate_template.py
  • git diff --check
  • mvn spotless:check

Related to #463.

Comment on lines +71 to +75
| `producerContext` | Exact SDK payload context used to create the reference |
| `requiresLoad` | Whether the producer's payload offloader must restore the serialized data |

Exactly one of `data` and `reference` is non-null. Version 1 SDK envelopes bind all custom-offloader results to
`producerContext`, populate the ownership and digest fields, and require the nested context to match them. A recognized

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.

Codex AI review · Finding arf_v1_klillh6j5zkiglgos5i7422z4s

[P2] Specify the producerContext wire schema. Java requires this object and passes it to PayloadOffloader.load, but this document never defines its property names, nullability, enum encodings, or stable entityId construction. Another SDK therefore cannot reliably produce an envelope Java will accept. Add a normative field table or JSON example covering every context field and the execution/operation entity-ID rules.

Comment thread examples/README.md
Comment on lines +92 to +94
Then generate, build, and deploy the filesystem Lambda stack with
`FileSystemInfrastructureStackName=JavaSDKFileSystemPayloadE2EInfrastructureStack`, and include
`-Dtest.filesystem.enabled=true` when running `CloudBasedIntegrationTest`.

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.

Codex AI review · Finding arf_v1_nhpk4wy3nhd73ew76a47dqolf5

[P2] Show the filesystem-specific generation and deployment commands. The default generator now excludes filesystem examples, so following the earlier python3 generate-template.py flow and merely supplying this parameter produces a template containing neither this function nor FileSystemInfrastructureStackName. Include the exact --file-system-only --output ..., sam build --template-file ..., and matching sam deploy --parameter-overrides ... commands.

Comment on lines +92 to +93
@Test
@EnabledIfSystemProperty(named = "test.filesystem.enabled", matches = "true")

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.

Codex AI review · Finding arf_v1_53ul4lt5y7uz5fbbcc6drjr4zb

[P3] Add default local replay coverage for this example. This is the only Java test referencing the new handler, and it is skipped unless both cloud flags are enabled, so normal mvn test never exercises its step/wait/replay path or verifies the restored output. Add a LocalDurableTestRunner test using a temporary filesystem configuration, asserting the final length/checksum and that the pre-wait step executes once; retain this test for EFS integration.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Codex AI review

Found three issues: an incomplete cross-SDK wire contract, unusable manual deployment instructions, and missing default replay coverage for the new example.

Reviewed commit fbfc064364bdc1c59fb7a93ba3cef2a6b2ba5ecb. Workflow run

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