Skip to main content
Version: 2.0 prerelease

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.

Supported installable channel

This index follows the 2.0 prerelease channel. Exact artifact identities belong to package metadata and retained qualification evidence, not this capability summary.

SurfaceSupported channelRole in this index
CLI2.0 prereleaseMachine-readable operator and diagnostic client.
PHP SDK2.0 prereleaseFirst-party service-mode durable-workflow/sdk client and remote workflow/activity worker for a Cloud namespace runtime or self-hosted Server.
Embedded Laravel engine2.0 prereleaseSeparate in-application durable-workflow/workflow deployment mode with its own authoring runtime, persistence engine, queues, and replay.
Python SDK2.0 prereleaseFirst-party service-mode deterministic workflow/activity SDK plus operational and control-plane client for a Cloud namespace runtime or self-hosted Server. Requires Python 3.10 or newer.
Rust SDK2.0 prereleaseFirst-party service-mode deterministic workflow/activity SDK, worker service, and control-plane client for a Cloud namespace runtime or self-hosted Server. Requires Rust 1.86 or newer.
Server2.0 prereleaseSelf-hosted, PHP-implemented language-neutral runtime for the v2 control-plane and worker protocols.
Waterline2.0 prereleaseCloud includes Managed Waterline; self-hosted operators separately deploy the service image against a Server namespace; embedded Laravel installs the Composer package and reads application-owned state in process.

PHP, Python, and Rust are the three first-party service-mode SDK languages. Each can target a provisioned Durable Workflow Cloud namespace runtime or a self-hosted Server where runtime discovery reports the published capability. 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. Python combines workflow authoring with namespace, schedule, worker, queue, history, repair, and other operational client surfaces.

Embedded Laravel remains a separate in-application PHP deployment mode; it is not required for PHP service-mode clients or workers. The framework-neutral PHP SDK is versioned independently from the embedded Laravel engine.

Use Deployment Modes to choose the ownership boundary, then continue with Cloud Managed Runtime or the self-hosted Server. The capability evidence below applies only where the selected runtime advertises the required contract.

The current self-hosted Server floor 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

“Service mode” means either Cloud or a self-hosted Server owns the remote runtime. “Embedded” means a Laravel application owns the runtime in process. The SDK column deliberately records differences; a blank or limited SDK is not implied to have parity.

CapabilityCurrent 2.0 contract and first-party floorExplicit 2.0 evidence
WorkflowsRemote PHP, Python, and Rust workers author deterministic workflows; embedded Laravel authoring uses the Workflow package.Workflow authoring, PHP SDK, Python SDK, Rust SDK
Activities and servicesThe embedded engine and all three service-mode 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
SignalsDurable, asynchronous mutation is available to PHP, Python, and Rust workflow surfaces at their current floors.Signals, Python SDK, Rust SDK
QueriesRead-only replay queries are supported. PHP, Python, and Rust expose query handlers/clients; Rust replayed query tasks require worker protocol 1.8 or newer.Queries, Python SDK, Rust SDK
UpdatesPHP, Python, and Rust expose client and worker-handler update surfaces. Python declared validators use synchronous pre-accept validation when Server discovery advertises that exact contract: acceptance follows approval, while rejection, worker loss, timeout, and fenced completion fail explicitly. PHP and Rust do not expose validator authoring and declare no validators.Updates, Python SDK, Rust SDK
TimersService-runtime-backed durable timers replay in PHP, Python, and Rust.Timers, Rust SDK
RetriesDurable 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
TimeoutsService-mode runtimes in Cloud and self-hosted Server enforce activity and workflow timeout families. Rust includes activity options and workflow execution/run start deadlines.Timeouts, Rust SDK
Child workflowsPHP, 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
CancellationCooperative 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
TerminationForced termination is separate from cancellation and is exposed through Cloud and self-hosted Server service runtimes, CLI, PHP, Python, and Rust control surfaces.Cancel and terminate, Server API
Side effectsPHP, Python, and Rust record non-deterministic values exactly once and decode the recorded value on replay.Side effects, Python SDK, Rust SDK
Version markersPHP, Python, and Rust expose durable version markers for compatible code evolution.Versioning, Python SDK, Rust SDK
Deterministic replayPHP, 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
SchedulesCloud and self-hosted Server service runtimes own durable schedules. PHP, Python, and CLI expose schedule operations. Rust does not claim a schedule-management API.Schedules, CLI reference, Python SDK
NamespacesService-mode runtimes are namespace-scoped. PHP/Python clients and CLI manage namespaces where the selected runtime exposes that operation; Rust workers/clients target a namespace but do not claim namespace administration at the current floor.Namespace, auth, and workers, Server API
Search attributesCloud and self-hosted Server service runtimes index typed search attributes. PHP and Python expose authoring/control surfaces; CLI and operator APIs expose structured discovery and filtering.Search attributes, Python SDK
Worker compatibilitySDKs 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 interoperabilityPHP, Python, and Rust use the public codec + blob envelope and one fixed recursive Avro Value schema. Named branches preserve integers versus doubles, text versus bytes, booleans versus integers, and lists versus maps.Avro Value protocol, Worker protocol, Rust SDK
DiagnosticsService runtimes and CLI publish version, protocol, worker, task-queue, replay, history, typed failure, and repair facts as JSON. Managed Waterline, a separately deployed self-hosted service, or the embedded package presents evidence from its owning runtime.Monitoring, CLI reference, Waterline operator API
Agent toolingDiscover -> 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 fixed Value schema; decoded maps, lists, strings, bytes, integers, doubles, booleans, and nulls preserve their primitive type. 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.