Durable Workflow 2.0 Capability Index
This is the authoritative capability index for the explicit 2.0 prerelease
docs line. Stable 1.x remains the default public documentation and release
line. Every evidence link on this page is an explicit /docs/2.0/ page; no
unversioned or 1.x page establishes a 2.0 claim.
Current installable floor
“Floor” on this page means the minimum member of the current installable public artifact tuple for which the indexed claim is made. It is not an assertion that every feature first appeared in that release.
| Surface | Exact current floor | Role in this index |
|---|---|---|
| CLI | 0.1.90 | Machine-readable operator and diagnostic client. |
| PHP SDK | 0.1.5 | Framework-neutral durable-workflow/sdk client and remote workflow/activity worker for the standalone server. |
| Embedded Laravel engine | 2.0.0-alpha.284 | durable-workflow/workflow authoring runtime, persistence engine, queues, replay, and server-hosted core. |
| Python SDK | 0.4.99 | First-party deterministic workflow/activity SDK plus operational and control-plane client. Requires Python 3.10 or newer. |
| Rust SDK | 0.1.15 | First-party deterministic workflow/activity SDK, worker service, and control-plane client. Requires Rust 1.86 or newer. |
| Server | 0.2.659 | PHP-implemented, language-neutral runtime for the v2 control-plane and worker protocols. |
| Waterline | 2.0.0-alpha.133 | Embedded-runtime observability and selected-run history export. |
PHP, Python, and Rust are the three first-party standalone SDK languages. They share
stable string type names, one durable command/history model, control plane
version 2, worker protocol major 1, and the public payload envelope. Rust is
a workflow SDK: it runs deterministic workflow code, activities, and worker
services, not only raw protocol calls. The framework-neutral PHP SDK is
versioned independently from the embedded Laravel engine. Python combines workflow authoring with
namespace, schedule, worker, queue, history, repair, and other operational
client surfaces.
The current server advertises worker protocol 1.13. Python uses its declared
1.1 baseline, while Rust uses 1.2 and requires the additive 1.8 query-task
surface for replayed queries. Runtime discovery, not a server patch-number
guess, decides whether a client may connect. See
Version Compatibility.
Capability and SDK floors
“Platform” means the standalone/embedded durable model exposes the capability. The SDK column deliberately records differences; a blank or limited SDK is not implied to have parity.
| Capability | Current 2.0 contract and first-party floor | Explicit 2.0 evidence |
|---|---|---|
| Workflows | Remote PHP 0.1.5, Python 0.4.99, and Rust 0.1.15 workers author deterministic workflows; embedded Laravel authoring uses 2.0.0-alpha.284. | Workflow authoring, PHP SDK, Python SDK, Rust SDK |
| Activities and services | The embedded engine and all three standalone SDKs author activities. Rust workflows and activities run in first-party worker services; Python and PHP also expose first-party control/service clients. | Activities, PHP SDK, Activity execution, External execution |
| Signals | Durable, asynchronous mutation is available to PHP, Python, and Rust workflow surfaces at their current floors. | Signals, Python SDK, Rust SDK |
| Queries | Read-only replay queries are supported. PHP, Python 0.4.99, and Rust 0.1.15 expose query handlers/clients; Rust replayed query tasks require worker protocol 1.8 or newer. | Queries, Python SDK, Rust SDK |
| Updates | The runtime records accepted durable updates. PHP and Python 0.4.99 author update handlers; synchronous Python pre-accept validators remain capability-discovery-gated. Rust 0.1.15 does not claim update authoring. | Updates, Python SDK |
| Timers | Server-backed durable timers replay in PHP, Python 0.4.99, and Rust 0.1.15. | Timers, Rust SDK |
| Retries | Durable activity retry policy is recorded with the command. PHP, Python, and Rust expose activity retry options at the current floors. | Failures and recovery, Python SDK, Rust SDK |
| Timeouts | Activity and workflow timeout families are server-enforced. Rust 0.1.15 includes activity options and workflow execution/run start deadlines. | Timeouts, Rust SDK |
| Child workflows | PHP, Python, and Rust start and await durable children. Cross-language type identity is a stable string and child payloads use the shared envelope. | Child workflows, Python SDK |
| Cancellation | Cooperative cancellation is a durable lifecycle command with selected-run safety and typed outcomes. PHP, Python, and Rust clients expose it. | Cancel and terminate, Rust SDK |
| Termination | Forced termination is separate from cancellation and is exposed through server, CLI, PHP, Python, and Rust control surfaces. | Cancel and terminate, Server API |
| Side effects | PHP, Python, and Rust 0.1.15 record non-deterministic values exactly once and decode the recorded value on replay. | Side effects, Python SDK, Rust SDK |
| Version markers | PHP, Python, and Rust 0.1.15 expose durable version markers for compatible code evolution. | Versioning, Python SDK, Rust SDK |
| Deterministic replay | PHP, Python, and Rust workflow workers reconstruct decisions from durable history and report typed non-determinism rather than re-running external work. | Execution guarantees, Platform conformance, Rust SDK |
| Schedules | Server 0.2.659 owns durable schedules; PHP, Python 0.4.99, and CLI 0.1.90 expose schedule operations. Rust 0.1.15 does not claim a schedule-management API. | Schedules, CLI reference, Python SDK |
| Namespaces | The standalone server is namespace-scoped. PHP/Python clients and CLI manage namespaces; Rust workers/clients target a namespace but do not claim namespace administration at the current floor. | Namespace, auth, and workers, Server API |
| Search attributes | Server 0.2.659 indexes typed search attributes. PHP and Python expose authoring/control surfaces; CLI and operator APIs expose structured discovery and filtering. | Search attributes, Python SDK |
| Worker compatibility | SDKs register runtime, SDK version, build ID, supported types, protocol version, and capacity; the server publishes accepted versions and routing facts. | Compatibility, Worker compatibility and routing |
| Codec interoperability | PHP, Python, and Rust use the public codec + blob envelope. The Avro implementation uses official apache/avro, avro, and apache-avro language packages. Cross-language child/activity inputs and results retain JSON value shape through the generic wrapper. | Passing data, Worker protocol, Rust SDK |
| Diagnostics | Server and CLI publish version, protocol, worker, task-queue, replay, history, typed failure, and repair facts as JSON; Waterline exports selected-run durable evidence. | Monitoring, CLI reference, Waterline operator API |
| Agent tooling | Discover -> Change -> Run -> Diagnose -> Repair is available through public manifests, schemas, HTTP operations, CLI JSON, SDK clients, typed history/diagnostics, and safe mutations. MCP is one optional interface, not the definition. | Agent tooling contract, Agent operating loop |
Payload interoperability boundary
Cross-language workflow and activity calls do not pass serialized PHP objects,
Python pickles, or Rust implementation types. They pass registered string type
names and a public payload envelope. With avro, each first-party SDK uses the
official language implementation and the same generic wrapper; decoded maps,
lists, strings, numbers, booleans, and nulls preserve their value shape. A
language-specific class is reconstructed only inside its owning SDK.
That contract applies to workflow input and result, child workflows, activity
input and result, signals, queries, updates, and external execution. Deployments
must still verify the codecs advertised by GET /api/cluster/info before
admitting a worker.
Release and maturity boundary
The platform contracts indexed here are public, but the product line remains 2.0 prerelease and the installable package versions above can advance before the stable cut. Stable 1.x is still the default public line. Use the AI-agent evaluator for a concise fit decision.