Add Python/Rust durable-workflows reference to the coding-agent skill#306
Closed
chrnorm wants to merge 1 commit into
Closed
Add Python/Rust durable-workflows reference to the coding-agent skill#306chrnorm wants to merge 1 commit into
chrnorm wants to merge 1 commit into
Conversation
A deep-dive reference built while writing long-running Restate workflows in Python and Rust, contributed upstream so it can be merged into building-restate-services. Notable content not yet covered by the existing references: Rust SDK coverage (no rust/ reference exists yet), the ~50s default RunRetryPolicy max_duration foot-gun, polling-loop vs backing-off semantics, journal hygiene, and a Python<->Rust cheat sheet. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
|
I have read the CLA Document and I hereby sign the CLA You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
What
Adds
references/durable-workflows-python-rust.mdto thebuilding-restate-servicesskill (bothrestate-plugin/src/and the generatedrestate-plugin/skills/copy — the new file has noCODE_LOADtags, so the copies are identical), plus one routing row inSKILL.md.Why
Stephan asked us to contribute the Restate skill we use internally with Claude Code so it can be merged into the public one. This is that content, with examples genericized to order/payment processing. We built it while writing long-running workflows (multi-minute activities, polling external systems, operator-approval signals) in Python, then porting toward Rust.
Content the existing references don't cover yet:
references/rust/today. Covers the trait macro, thectx.runbuilder, the ~50s defaultRunRetryPolicy.max_durationfoot-gun (vs Python's retry-forever),ServiceOptionstimeouts,select!/DurableFuturesUnordered, testcontainers, and a Python↔Rust cheat sheet for porting.ctx.run— when each is appropriate, and why raising synthetic errors for successful-but-InProgressobservations pollutesbacking-offstatus and retry alerting.ctx.getneedstype_hint=with Pydantic, neverexcept Exceptionin handlers, deadlock between exclusive VirtualObject handlers.Written against server 1.6.2, Python SDK 0.15.0, Rust SDK 0.9.0.
Notes for maintainers
Opened as a draft on purpose: structure it however fits — e.g. split the Rust half into
references/rust/api-and-pitfalls.md(plus Cargo.toml detection in SKILL.md) and fold the Python sections intoreferences/python/api-and-pitfalls.md. Happy to do that restructuring in this PR if you'd prefer; otherwise feel free to take the content and edit freely.🤖 Generated with Claude Code