Workflow Py
Description
Durable, Reliable and Performant Serverless Functions
Installation
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open the source below and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
README
Upstash Workflow SDK
**Upstash Workflow** lets you write durable, reliable and performant serverless functions. Get delivery guarantees, automatic retries on failure, scheduling and more without managing any infrastructure.
See [the documentation](https://upstash.com/docs/workflow/getstarted) for more details
Quick Start
Here, we will briefly showcase how you can get started with Upstash Workflow using FastAPI.
Alternatively, you can check [our quickstarts for different frameworks](https://upstash.com/docs/workflow/quickstarts/platforms), including [FastAPI](https://upstash.com/docs/workflow/quickstarts/fastapi) and [Next.js & FastAPI](https://upstash.com/docs/workflow/quickstarts/nextjs-fastapi).
Install
First, create a new directory and set up a virtual environment:
python -m venv venv
source venv/bin/activate
Then, install the required packages:
pip install fastapi uvicorn upstash-workflow
Get QStash token
Go to [Upstash Console](https://console.upstash.com/qstash) and copy the `QSTASH_TOKEN`, set it in the `.env` file.
export QSTASH_TOKEN=
Define a Workflow Endpoint
To declare workflow endpoints, use the `@serve.post` decorator. Save the following code to `main.py`:
from fastapi import FastAPI
from upstash_workflow.fastapi import Serve
from upstash_workflow import AsyncWorkflowContext
app = FastAPI()
serve = Serve(app)
# mock function
def some_work(input: str) -> str:
return f"processed '{input}'"
# serve endpoint which expects a string payload:
@serve.post("/example")
async def example(context: AsyncWorkflowContext[str]) -> None:
# get request body:
input = context.request_payload
async def _step1() -> str:
output = some_work(input)
print("step 1 input", input, "output", output)
return output
# run the first step:
result: str = await context.run("step1", _step1)
async def _step2() -> None:
output = some_work(result)
Related Skills
Epic Decompose
Break an epic into task children without creating task branches.
Productivity Claude Code Terminal Title
Gives each Claude Code terminal window a dynamic title describing the work being done
Productivity N8n Skills
Enables AI assistants to directly understand and operate n8n workflows
Productivity Composio Make
Trigger and manage Make (Integromat) scenarios
Productivity Getting Help
career-ops is an open source project maintained in limited time. Here's how to get help efficiently.
Productivity Worktree Status Check
Verify the current worktree environment and show task details.
Productivity