aws / aws/aws-durable-execution-sdk-java
Plugin hook info records missing state/metadata fields at invocation, attempt, and change hooks
- Dominant language
- Java
- Stars
- 28
- Forks
- 11
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 47
Description
## Summary
Java's plugin info records lack metadata/state fields the Python/JS SDKs expose. Live cross-SDK conformance evidence exists per gap.
**GA scope update:** payload surfaces (execution input/result, operation `result`) have been moved OUT of GA conformance scope — experimental, no longer asserted by the field-shape requirements (see aws/aws-durable-execution-conformance-tests#72). They remain listed at the end as post-GA parity items; the operation-result gap is still evidenced by the untouched behavioral requirement 10-14 (#581).
## In-scope missing fields (verified against `sdk/src/main/java/software/amazon/lambda/durable/plugin/`)
**`InvocationInfo`** — missing `operations` and `updatedOperations` maps (JS exposes both on every invocation hook).
**`InvocationEndInfo`** — missing the `operations` map AND `executionStartTime` (present on the start info but dropped from the end record — confirmed by live probe).
**`UserFunctionStartInfo`/`UserFunctionEndInfo`** (attempt hooks) — missing the operation-level `isReplay` indicator (Python and JS carry it on attempt infos; Java only has the distinct `isReplayingChildren`).
**`OperationChangeItemInfo`** — missing `attempt` and a replay indicator (JS/Python change items are full operation infos).
Secondary: `UserFunctionEndInfo` uses `boolean succeeded` where JS/Python use a SUCCEEDED/FAILED outcome enum.
## Evidence
Field-shape requirements 10-19..10-23 (aws/aws-durable-execution-conformance-tests#72), canonical-dump handlers in #602 — live run 18/21: 10-19 (maps + end-side start time), 10-21 (`isReplay` presence), 10-22 (item attempt/replay) red; 10-20 and 10-23 green. Notably green: end-info `isFirstInvocation` (ahead of JS), `OperationInfo.status` (#597), attempt-end timestamps (ahead of JS), `isReplayingChildren` semantics.
## Post-GA / experimental parity items (not currently asserted)
- `executionInput`/`executionResult` on invocation infos; `result` on `OperationInfo`/`OperationEndInfo`/`OperationChangeItemInfo` (the OperationEndInfo result gap remains tracked by behavioral test 10-14 / #581)
## Suggested fix
Add the operations/updated-operations maps + end-side `executionStartTime` to the invocation infos (`DurableExecutor`/`ExecutionManager`), `isReplay` to the user-function infos, and `attempt`+replay indicator to `OperationChangeItemInfo` (via `PluginInfoConverter`). Conformance 10-19/10-21/10-22 flip green with no test changes.
Contributor guide
Assessment
This issue has not been assessed yet.