Repository navigation
Add the aws-step-functions-python-sdk reference implementation - #1
Merged
Merged
Conversation
Step Functions pipeline that submits a Wherobots job run via wherobots-python-sdk using the callback pattern: the job posts its own success/failure (with traceback) through an API Gateway relay and heartbeats every 60s; HeartbeatSeconds catches hard deaths (OOM/kill) the job cannot report, routing to a FindRun Lambda and a reusable poller state machine for the true terminal status. Ships with a guided local dashboard (upload -> deploy -> run -> teardown, live 10s block timeline, three test modes including an os._exit OOM simulation), blog-ready flow diagrams, and symmetric tagged teardown. All behavior verified against live AWS + Wherobots Cloud runs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Reviewed by Salty Hambot 🤖🧂 — rubric mode
Verdict: ✅ pass
| Dimension | Verdict | Notes |
|---|---|---|
| correctness | ✅ pass | Success-post moved out of the try, dynamic ErrorPath/CausePath wired, parse_opts trailing-flag fix — all confirmed in code with tests. |
| security | ✅ pass | Dedicated relay role, secret echo closed on both create/update paths, JSON-encoded env maps; public relay rests on the single-use token as documented. |
| privacy | ✅ pass | Internal 'aws-asset-catalog' reference removed and CI now greps for it; secrets stay in gitignored .env, masked in preflight. |
| reliability | ✅ pass | Exec-lock drain-before-wait, fail-loud teardown and deploy retry tracking, add-permission narrowed to ResourceConflictException — all landed. |
| scalability | ✅ pass | Single-user local control plane at reference scale; no scaling concerns in the changed paths. |
| observability | ✅ pass | Live graph/timeline surfacing is thorough; terminal JobFailed carries the caught error via ErrorPath/CausePath. |
| clarity/maintainability | ✅ pass | Code is clean, well-commented, and the fix comments explain the constraints (heartbeat window, drain-before-wait, least privilege). |
| test quality | ✅ pass | Unit coverage now includes parse_opts, ASL invariants, drain-before-wait deadlock regression, and the three callback-delivery contract paths. |
Seventeen threads chased down, and this round the launchpad's clean — both reviewers came up empty, the code confirms every fix landed (240s heartbeat, dedicated relay role, dynamic JobFailed error paths, drain-before-wait, fail-loud teardown/deploy, success-post out of the try). Ship it.
Prior findings: ✅ 16 resolved ·
0 finding(s) posted.
💰 Review cost: $2.4430 · 686.9k in / 16.4k out tokens · ⏱️ 3m6.5s
💬 To request a re-review, comment @salty-hambot review
…env JSON, relay role split, exec lock, dead code Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…heel motif Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… live (4m46s) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… evidence note Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… root Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ADME disclaimers, CI Per the Wherobots Labs charter: Apache 2.0 LICENSE, CONTRIBUTING.md with the release-gate and no-core-access rules, the verbatim Labs disclaimer in both READMEs with a GitHub Issues pointer, and a CI workflow running syntax checks, ASL validation, a secrets scan, and a required-files check.
… can't deadlock the exec lock
Contributor
Author
|
@salty-hambot review |
…ix stale 3-5 min claim in dashboard
…ernal tool reference from deploy comment; tests for both callback paths
Contributor
Author
|
@salty-hambot review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
First reference implementation in the labs collection: an AWS Step Functions pipeline that submits a Wherobots job run via the
wherobots-python-sdkusing the callback pattern, with a reusable poller state machine as the fallback for failures the job cannot report itself.What's inside
waitForTaskToken): the job posts its own success/failure through an API Gateway relay Lambda; no polling on the happy path. The single-use task token is the auth capability.HeartbeatSeconds: 180; the fallback recovers the run_id from the deterministic job name and polls Wherobots for the true status (confirmed FAILED verdict in 4m05s on a simulated OOM)..env(documented.env.example), every AWS resource tagged (ManagedBy/Project/CreatedAt/TeardownBy), symmetric teardown, blog-ready flow diagrams inassets/.Root README gains the index table for implementations to come.
🤖 Generated with Claude Code