Cadence is a distributed, scalable, durable, and highly available orchestration engine we developed at Uber Engineering to execute asynchronous long-running business logic in a scalable and resilient way.
cadence-python-client
is the Python framework for authoring workflows and activities.
This SDK is currently an early work-in-progress (WIP) and is NOT ready for production use.
- This project is still in active development
- It has not been published to any package repository (PyPI, etc.)
- APIs and interfaces are subject to change without notice
git clone https://github.com/cadence-workflow/cadence-python-client.git
cd cadence-python-client
-
Create virtual environment:
python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
Run the generation script:
python scripts/generate_protobuf_final.py
This will:
- Download protoc 29.1 binary
- Generate Python files in
cadence/api/v1/
- Create proper package structure
Verify the generated files work:
python cadence/sample/simple_usage_example.py
from cadence.api.v1 import workflow, common, domain
# Create objects
wf_exec = common.WorkflowExecution()
wf_exec.workflow_id = "my-workflow"
# Use enums
status = workflow.WORKFLOW_EXECUTION_CLOSE_STATUS_COMPLETED
Apache 2.0 License, please see LICENSE for details.