Skip to content

Commit ed53333

Browse files
deploy: 7790afd
1 parent 50b5b0d commit ed53333

File tree

180 files changed

+712
-712
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

180 files changed

+712
-712
lines changed

2.0/llms-full.txt

Lines changed: 160 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -9456,166 +9456,6 @@ dw task-queue:describe default
94569456

94579457
See the [CLI repository README](https://github.com/durable-workflow/cli#commands) for the full command reference.
94589458

9459-
# Version Compatibility
9460-
9461-
This page documents version compatibility across Durable Workflow components. All components validate version compatibility at runtime and provide clear error messages when incompatible versions are detected.
9462-
9463-
## Component Versions
9464-
9465-
| Component | Current Version | Notes |
9466-
|-----------|----------------|-------|
9467-
| Workflow Package (PHP) | 1.0.75 (v1), 2.0.0 (v2) | Core workflow engine |
9468-
| Standalone Server | 2.0.0 | Language-neutral HTTP server |
9469-
| CLI | 0.1.0 | Command-line interface |
9470-
| Python SDK | 0.1.0 | Python client and worker |
9471-
| Waterline | 1.0.16 (v1), 2.0.0 (v2) | Observability UI |
9472-
9473-
## Compatibility Matrix
9474-
9475-
### Server ↔ SDK/CLI
9476-
9477-
| Server Version | CLI 0.1.x | Python SDK 0.1.x | PHP Workflow 2.0.x |
9478-
|----------------|-----------|------------------|-------------------|
9479-
| 2.0.x (stable) | ✅ Compatible | ✅ Compatible | ✅ Compatible |
9480-
| 1.x | ❌ Skipped | ❌ Skipped | ❌ Skipped |
9481-
| 3.x+ (future) | ❌ Breaking | ❌ Breaking | ❌ Breaking |
9482-
9483-
**Version 1.x**: Intentionally skipped. The project moved directly to 2.x (stable).
9484-
9485-
### Workflow Package ↔ Waterline
9486-
9487-
| Workflow Version | Waterline 1.x | Waterline 2.x |
9488-
|------------------|---------------|---------------|
9489-
| 1.x | ✅ Compatible | ❌ Not compatible |
9490-
| 2.x | ❌ Not compatible | ✅ Compatible |
9491-
9492-
Waterline versions must match the workflow package major version.
9493-
9494-
## Runtime Validation
9495-
9496-
### CLI
9497-
9498-
The CLI validates server version on first invocation per session:
9499-
9500-
```bash
9501-
$ dw server:health
9502-
Server version 3.0.0 is incompatible with dw CLI 0.1.x (requires server 2.x).
9503-
Upgrade the server or use a compatible CLI version.
9504-
```
9505-
9506-
Version checks are cached per CLI invocation. Starting a new CLI command re-validates.
9507-
9508-
### Python SDK
9509-
9510-
The Python SDK validates server version when workers register:
9511-
9512-
```python
9513-
from durable_workflow import Client, Worker
9514-
9515-
client = Client("http://server:8080", token="...", namespace="default")
9516-
worker = Worker(client, task_queue="default", workflows=[...])
9517-
9518-
await worker.run() # Validates server version before registering
9519-
```
9520-
9521-
If incompatible:
9522-
9523-
```
9524-
RuntimeError: Server version 3.0.0 is incompatible with sdk-python 0.1.x
9525-
(requires server 2.x). Upgrade the server or use a compatible SDK version.
9526-
```
9527-
9528-
### Server
9529-
9530-
The server returns its version and supported SDK versions in `GET /api/cluster/info`:
9531-
9532-
```json
9533-
{
9534-
"version": "2.0.0",
9535-
"supported_sdk_versions": {
9536-
"php": ">=1.0",
9537-
"python": ">=0.1"
9538-
}
9539-
}
9540-
```
9541-
9542-
Clients and workers query this endpoint to validate compatibility.
9543-
9544-
## Upgrading
9545-
9546-
### Minor Version Upgrades (0.1.8 → 0.1.9, 2.0.0 → 2.0.1)
9547-
9548-
Minor versions are backward-compatible within the same major version:
9549-
9550-
- **Server**: Upgrade without client changes
9551-
- **CLI**: Upgrade independently
9552-
- **Python SDK**: Upgrade independently
9553-
9554-
Example: Server 2.0.1 works with CLI 0.1.0 and Python SDK 0.1.0.
9555-
9556-
### Major Version Upgrades (2.x → 3.x)
9557-
9558-
Major version changes may introduce breaking changes:
9559-
9560-
1. **Check compatibility matrix** (above) for supported version combinations
9561-
2. **Upgrade server first**: Deploy new server version
9562-
3. **Validate with one client**: Test one CLI command or SDK worker
9563-
4. **Upgrade remaining clients**: CLI, SDK, workers
9564-
9565-
**Future major versions (2.x → 3.x)**: Will require client updates. Version validation will catch incompatibilities and provide clear error messages.
9566-
9567-
## Version Negotiation Protocol
9568-
9569-
All client-server communication includes protocol version headers:
9570-
9571-
**Control plane** (workflow start, describe, signal, query, update):
9572-
```
9573-
X-Durable-Workflow-Control-Plane-Version: 2
9574-
```
9575-
9576-
**Worker protocol** (task polling, completion):
9577-
```
9578-
X-Durable-Workflow-Protocol-Version: 1.0
9579-
```
9580-
9581-
The server validates these headers and rejects requests with missing or incompatible versions.
9582-
9583-
## Troubleshooting
9584-
9585-
### "Server version X is incompatible with..."
9586-
9587-
**Cause**: Client and server major versions don't match.
9588-
9589-
**Fix**:
9590-
1. Check the compatibility matrix above
9591-
2. Upgrade server or client to compatible versions
9592-
3. If server is 2.x and client reports incompatibility, file a bug
9593-
9594-
### "Missing X-Durable-Workflow-Protocol-Version header"
9595-
9596-
**Cause**: Old client not sending protocol version headers.
9597-
9598-
**Fix**: Upgrade CLI to 0.1.0+ or Python SDK to 0.1.0+.
9599-
9600-
### "Control plane version mismatch"
9601-
9602-
**Cause**: Server and client disagree on control-plane protocol version.
9603-
9604-
**Fix**: Ensure server is 2.x and client is sending version 2 header.
9605-
9606-
## Version History
9607-
9608-
| Date | Server | CLI | Python SDK | Workflow | Waterline | Notes |
9609-
|------|--------|-----|------------|----------|-----------|-------|
9610-
| 2026-04-15 | 2.0.0 | 0.1.0 | 0.1.0 | 2.0.0 | 2.0.0 | Stable release |
9611-
9612-
## See Also
9613-
9614-
- [Server Setup](/docs/2.0/server-setup) — Deploying the standalone server
9615-
- [Python SDK](/docs/2.0/sdks/python) — Python client and worker
9616-
- [CLI](/docs/2.0/cli) — Command-line interface
9617-
- [Migration Guide](/docs/2.0/migration) — Migrating from v1 to v2
9618-
96199459
# Server
96209460

96219461
The Durable Workflow server is a standalone, language-neutral workflow orchestration service. It exposes the same durable execution engine as the PHP package over HTTP, letting you write workflows in Python, PHP, or any language that speaks HTTP.
@@ -10622,3 +10462,163 @@ python my_worker.py
1062210462

1062310463
The server runs on `http://localhost:8080` by default.
1062410464

10465+
# Version Compatibility
10466+
10467+
This page documents version compatibility across Durable Workflow components. All components validate version compatibility at runtime and provide clear error messages when incompatible versions are detected.
10468+
10469+
## Component Versions
10470+
10471+
| Component | Current Version | Notes |
10472+
|-----------|----------------|-------|
10473+
| Workflow Package (PHP) | 1.0.75 (v1), 2.0.0 (v2) | Core workflow engine |
10474+
| Standalone Server | 2.0.0 | Language-neutral HTTP server |
10475+
| CLI | 0.1.0 | Command-line interface |
10476+
| Python SDK | 0.1.0 | Python client and worker |
10477+
| Waterline | 1.0.16 (v1), 2.0.0 (v2) | Observability UI |
10478+
10479+
## Compatibility Matrix
10480+
10481+
### Server ↔ SDK/CLI
10482+
10483+
| Server Version | CLI 0.1.x | Python SDK 0.1.x | PHP Workflow 2.0.x |
10484+
|----------------|-----------|------------------|-------------------|
10485+
| 2.0.x (stable) | ✅ Compatible | ✅ Compatible | ✅ Compatible |
10486+
| 1.x | ❌ Skipped | ❌ Skipped | ❌ Skipped |
10487+
| 3.x+ (future) | ❌ Breaking | ❌ Breaking | ❌ Breaking |
10488+
10489+
**Version 1.x**: Intentionally skipped. The project moved directly to 2.x (stable).
10490+
10491+
### Workflow Package ↔ Waterline
10492+
10493+
| Workflow Version | Waterline 1.x | Waterline 2.x |
10494+
|------------------|---------------|---------------|
10495+
| 1.x | ✅ Compatible | ❌ Not compatible |
10496+
| 2.x | ❌ Not compatible | ✅ Compatible |
10497+
10498+
Waterline versions must match the workflow package major version.
10499+
10500+
## Runtime Validation
10501+
10502+
### CLI
10503+
10504+
The CLI validates server version on first invocation per session:
10505+
10506+
```bash
10507+
$ dw server:health
10508+
Server version 3.0.0 is incompatible with dw CLI 0.1.x (requires server 2.x).
10509+
Upgrade the server or use a compatible CLI version.
10510+
```
10511+
10512+
Version checks are cached per CLI invocation. Starting a new CLI command re-validates.
10513+
10514+
### Python SDK
10515+
10516+
The Python SDK validates server version when workers register:
10517+
10518+
```python
10519+
from durable_workflow import Client, Worker
10520+
10521+
client = Client("http://server:8080", token="...", namespace="default")
10522+
worker = Worker(client, task_queue="default", workflows=[...])
10523+
10524+
await worker.run() # Validates server version before registering
10525+
```
10526+
10527+
If incompatible:
10528+
10529+
```
10530+
RuntimeError: Server version 3.0.0 is incompatible with sdk-python 0.1.x
10531+
(requires server 2.x). Upgrade the server or use a compatible SDK version.
10532+
```
10533+
10534+
### Server
10535+
10536+
The server returns its version and supported SDK versions in `GET /api/cluster/info`:
10537+
10538+
```json
10539+
{
10540+
"version": "2.0.0",
10541+
"supported_sdk_versions": {
10542+
"php": ">=1.0",
10543+
"python": ">=0.1"
10544+
}
10545+
}
10546+
```
10547+
10548+
Clients and workers query this endpoint to validate compatibility.
10549+
10550+
## Upgrading
10551+
10552+
### Minor Version Upgrades (0.1.8 → 0.1.9, 2.0.0 → 2.0.1)
10553+
10554+
Minor versions are backward-compatible within the same major version:
10555+
10556+
- **Server**: Upgrade without client changes
10557+
- **CLI**: Upgrade independently
10558+
- **Python SDK**: Upgrade independently
10559+
10560+
Example: Server 2.0.1 works with CLI 0.1.0 and Python SDK 0.1.0.
10561+
10562+
### Major Version Upgrades (2.x → 3.x)
10563+
10564+
Major version changes may introduce breaking changes:
10565+
10566+
1. **Check compatibility matrix** (above) for supported version combinations
10567+
2. **Upgrade server first**: Deploy new server version
10568+
3. **Validate with one client**: Test one CLI command or SDK worker
10569+
4. **Upgrade remaining clients**: CLI, SDK, workers
10570+
10571+
**Future major versions (2.x → 3.x)**: Will require client updates. Version validation will catch incompatibilities and provide clear error messages.
10572+
10573+
## Version Negotiation Protocol
10574+
10575+
All client-server communication includes protocol version headers:
10576+
10577+
**Control plane** (workflow start, describe, signal, query, update):
10578+
```
10579+
X-Durable-Workflow-Control-Plane-Version: 2
10580+
```
10581+
10582+
**Worker protocol** (task polling, completion):
10583+
```
10584+
X-Durable-Workflow-Protocol-Version: 1.0
10585+
```
10586+
10587+
The server validates these headers and rejects requests with missing or incompatible versions.
10588+
10589+
## Troubleshooting
10590+
10591+
### "Server version X is incompatible with..."
10592+
10593+
**Cause**: Client and server major versions don't match.
10594+
10595+
**Fix**:
10596+
1. Check the compatibility matrix above
10597+
2. Upgrade server or client to compatible versions
10598+
3. If server is 2.x and client reports incompatibility, file a bug
10599+
10600+
### "Missing X-Durable-Workflow-Protocol-Version header"
10601+
10602+
**Cause**: Old client not sending protocol version headers.
10603+
10604+
**Fix**: Upgrade CLI to 0.1.0+ or Python SDK to 0.1.0+.
10605+
10606+
### "Control plane version mismatch"
10607+
10608+
**Cause**: Server and client disagree on control-plane protocol version.
10609+
10610+
**Fix**: Ensure server is 2.x and client is sending version 2 header.
10611+
10612+
## Version History
10613+
10614+
| Date | Server | CLI | Python SDK | Workflow | Waterline | Notes |
10615+
|------|--------|-----|------------|----------|-----------|-------|
10616+
| 2026-04-15 | 2.0.0 | 0.1.0 | 0.1.0 | 2.0.0 | 2.0.0 | Stable release |
10617+
10618+
## See Also
10619+
10620+
- [Server Setup](/docs/2.0/server-setup) — Deploying the standalone server
10621+
- [Python SDK](/docs/2.0/sdks/python) — Python client and worker
10622+
- [CLI](/docs/2.0/cli) — Command-line interface
10623+
- [Migration Guide](/docs/2.0/migration) — Migrating from v1 to v2
10624+

0 commit comments

Comments
 (0)