Showcase of the sync Dex Python SDK surface (Client / Worker) next to
the primary async examples under examples/python/.
Targets dex-python-sdk==0.6.0.
Requires Python 3.11+.
The samples use concrete SDK errors for missing, inactive, and duplicate Flows instead of inspecting Dex sub-status metadata.
Six Flows:
| Demo | Route prefix | Notes |
|---|---|---|
| Basic | /primitives/step |
smallest Flow |
| Money transfer | /products/money-transfer |
saga |
| Engagement | /products/engagement |
channels + RPC |
| Subscription | /products/subscription |
timers |
| Parent–child | /patterns/parent-child |
sync Client inside Step.execute |
| Interruptible | /patterns/interruptible |
interrupt RPC |
Defaults: HTTP 127.0.0.1:8081 (the async app uses 8080). The Worker uses
pull streams and needs only an outbound connection to the Dex Server.
From examples/python (shared uv project):
dexcli dev
# Indexed Attributes — same as the async README
uv sync --locked
uv run --frozen python sync-python/main.pyEnv overrides: DEX_FLOW_SERVICE_ADDRESS, DEX_SYNC_EXAMPLES_HTTP_ADDRESS,
and DEX_SYNC_BLOB_CACHE_DIR.
# from examples/python, with Dex running
DEX_FLOW_SERVICE_ADDRESS=127.0.0.1:8801 \
uv run --frozen pytest sync-python/sync_tests/integ -vOr run the full e2e suite (make e2eTests), which includes these sync integ tests.