feat: add custom durable operation SPI - #296
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Addressed in
Verified locally: |
This comment has been minimized.
This comment has been minimized.
0705af5 to
1814408
Compare
|
Addressed the latest Codex review in
Validation: 2,223 SDK tests and 89 example tests pass; mypy, Ruff/formatting, strict docs, and wheel build are clean. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Addressed the latest Codex findings in |
This comment has been minimized.
This comment has been minimized.
|
AI review status on current head
No additional review comment needs a code change. The product fixes remain validated at 2,252 SDK tests, 89 examples, mypy, Ruff, strict docs, and wheel build. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Addressed the completed-replay reservation finding in d304b29.
Added an early-completion regression with one historical branch and one unstarted item whose namer raises if touched. Validation: 2,253 SDK tests, 89 examples, mypy, Ruff, strict docs, and wheel build pass. |
Codex AI reviewNo actionable findings. Residual risk: custom subtype and stateful retry behavior is tested through the local runner, not a cloud-backed durable execution. Reviewed commit |
Claude AI reviewReview SummaryI read the full PR diff (74 files, ~4.6k/0.7k +/-), This is a large, well-scoped refactor: it introduces a public No confirmed correctness bug was found. Two low-severity, likely-intentional behavior changes are worth calling out:
Residual risk: the replay-frontier / reservation-consumption logic in Reviewed commit |
Summary
ExtensionContextand opaque one-shot operation reservation API for third-party durable operation libraries_operationthe canonical implementation layer for all SDK operations, includingstep(),wait(),invoke(),create_callback(), andrun_in_child_context()_primitive, with the SPI delegating to those executors_primitivehelper imports as lazy compatibility delegates and legacy_extension.<module>imports as aliases to_operation_extension.wait_for_condition.WaitForConditionErrorcheckpoint metadata during replaywait_for_callbacksubmitter retriesThis follows the extension-authoring direction of aws/aws-durable-execution-sdk-java#607 without exposing the SDK checkpoint machinery.
Validation
hatch run test:sdk -q(2,223 passed)hatch run test:examples -q(89 passed)hatch run test:typecheckhatch fmt --checkhatch run docs:buildhatch build -t wheelFixes #279