Skip to main content
Version: 2.0 prerelease

Platform Protocol Specs

The platform protocol catalog tells SDK authors, agents, operators, and third-party tooling exactly which machine-readable specification governs each public Durable Workflow surface.

Use the machine-readable catalog for automation. Every available entry provides both a stable specification identifier and a public HTTPS URL that resolves directly to an OpenAPI, AsyncAPI, or JSON Schema artifact.

Repository paths, implementation symbols, and test fixtures are intentionally not consumer authority. They are excluded from the published catalog and kept only as validation diagnostics.

Catalog identity and discovery

The catalog has schema durable-workflow.v2.platform-protocol-specs.catalog and version 15. It is available through:

The JSON URL is the machine-consumable catalog authority. The server re-exports the same catalog so clients can discover the active protocol surface without assuming a repository layout.

Consumer fields

Each entry exposes the following contract:

FieldMeaning
spec_idStable Durable Workflow protocol identifier. Published documents carry the matching identity.
spec_urlDirect public HTTPS URL for the machine-readable specification.
formatopenapi, json_schema, or asyncapi.
statusWhether the referenced artifact is published, in progress, or planned.
surface_familyCompatibility-policy family that governs the surface.
authority_manifestDiscovery manifest through which a runtime advertises the surface.
owner_repoProject responsible for the specification.
object_familiesPublic object-family names and their owning projects.
evolution_ruleCompatibility rule for additive and breaking changes.
breaking_change_releaseRelease boundary required by that evolution rule.

Consumers should resolve spec_url and validate the document identity against spec_id. They do not need source checkout access.

Available specifications

This inventory is rendered from the public JSON catalog. Specification identity, availability, public links, and object-family ownership therefore remain catalog data rather than a second prose authority.

control_plane_api

Specification ID
durable-workflow.v2.control-plane-api
Format and status
openapi · published
Owning contract
durable-workflow/server

Object families and owning contracts

  • control_plane_request_contractdurable-workflow/server
  • control_plane_response_envelopedurable-workflow/server
  • control_plane_operation_contractdurable-workflow/server

worker_protocol_api

Specification ID
durable-workflow.v2.worker-protocol-api
Format and status
openapi · published
Owning contract
durable-workflow/server

Object families and owning contracts

  • worker_registration_requestdurable-workflow/server
  • worker_task_poll_requestdurable-workflow/server
  • worker_task_resultdurable-workflow/server
  • worker_query_task_poll_requestdurable-workflow/server
  • worker_query_task_resultdurable-workflow/server
  • external_task_input_contractdurable-workflow/server
  • external_task_result_contractdurable-workflow/server

worker_protocol_stream

Specification ID
durable-workflow.v2.worker-protocol-stream
Format and status
asyncapi · published
Owning contract
durable-workflow/server

Object families and owning contracts

  • worker_poll_streamdurable-workflow/server
  • worker_task_leasedurable-workflow/server
  • worker_task_heartbeatdurable-workflow/server

worker_sessions_runtime

Specification ID
durable-workflow.v2.worker-sessions-runtime
Format and status
json_schema · published
Owning contract
durable-workflow/server

Object families and owning contracts

  • worker_session_runtime_contractdurable-workflow/workflow
  • worker_session_optionsdurable-workflow/workflow
  • worker_session_lifecycledurable-workflow/server
  • worker_session_visibilitydurable-workflow/server

local_activity_runtime

Specification ID
durable-workflow.v2.local-activity-runtime
Format and status
json_schema · published
Owning contract
durable-workflow/workflow

Object families and owning contracts

  • local_activity_runtime_contractdurable-workflow/workflow
  • local_activity_optionsdurable-workflow/workflow
  • local_activity_history_markersdurable-workflow/workflow
  • local_activity_visibilitydurable-workflow/workflow

history_event_payloads

Specification ID
durable-workflow.v2.history-event-payloads
Format and status
json_schema · published
Owning contract
durable-workflow/workflow

Object families and owning contracts

  • workflow_history_eventsdurable-workflow/workflow
  • workflow_schedule_history_eventsdurable-workflow/workflow

history_export_bundle

Specification ID
durable-workflow.v2.history-export-bundle
Format and status
json_schema · published
Owning contract
durable-workflow/workflow

Object families and owning contracts

  • history_export_bundledurable-workflow/workflow

replay_bundle

Specification ID
durable-workflow.v2.replay-bundle
Format and status
json_schema · published
Owning contract
durable-workflow/workflow

Object families and owning contracts

  • replay_bundledurable-workflow/workflow

waterline_read_api

Specification ID
durable-workflow.v2.waterline-read-api
Format and status
openapi · published
Owning contract
durable-workflow/waterline

Object families and owning contracts

  • waterline_read_envelopedurable-workflow/waterline
  • waterline_operator_action_envelopedurable-workflow/waterline

waterline_diagnostic_objects

Specification ID
durable-workflow.v2.waterline-diagnostic-objects
Format and status
json_schema · published
Owning contract
durable-workflow/waterline

Object families and owning contracts

  • waterline_run_detaildurable-workflow/waterline
  • waterline_health_diagnosticsdurable-workflow/waterline
  • waterline_timeline_rowsdurable-workflow/waterline
  • waterline_lineage_edgesdurable-workflow/waterline

repair_actionability_objects

Specification ID
durable-workflow.v2.repair-actionability-objects
Format and status
json_schema · published
Owning contract
durable-workflow/workflow

Object families and owning contracts

  • task_repair_policydurable-workflow/workflow
  • task_repair_candidatesdurable-workflow/workflow
  • operator_queue_visibilitydurable-workflow/workflow
  • actionabilitydurable-workflow/waterline
  • agent_root_causedurable-workflow/durable-workflow.github.io
  • agent_remediationdurable-workflow/durable-workflow.github.io
  • safe_mutationdurable-workflow/durable-workflow.github.io

cli_json_envelopes

Specification ID
durable-workflow.v2.cli-json-envelopes
Format and status
json_schema · published
Owning contract
durable-workflow/cli

Object families and owning contracts

  • cli_output_schema_manifestdurable-workflow/cli
  • cli_command_output_schemadurable-workflow/cli

mcp_discovery

Specification ID
durable-workflow.v2.mcp-discovery
Format and status
json_schema · published
Owning contract
durable-workflow/durable-workflow.github.io

Object families and owning contracts

  • mcp_tool_discoverydurable-workflow/durable-workflow.github.io
  • llms_txt_discoverydurable-workflow/durable-workflow.github.io

mcp_tool_results

Specification ID
durable-workflow.v2.mcp-tool-results
Format and status
json_schema · published
Owning contract
durable-workflow/durable-workflow.github.io

Object families and owning contracts

  • mcp_tool_result_envelopedurable-workflow/durable-workflow.github.io
  • agent_root_causedurable-workflow/durable-workflow.github.io
  • agent_remediationdurable-workflow/durable-workflow.github.io
  • safe_mutationdurable-workflow/durable-workflow.github.io

cluster_info_envelope

Specification ID
durable-workflow.v2.cluster-info-envelope
Format and status
json_schema · published
Owning contract
durable-workflow/server

Object families and owning contracts

  • cluster_info_envelopedurable-workflow/server
  • client_compatibility_manifestdurable-workflow/server
  • surface_stability_contractdurable-workflow/workflow
  • platform_protocol_specs_catalogdurable-workflow/workflow
  • platform_conformance_suite_manifestdurable-workflow/workflow
  • sdk_neutrality_contractdurable-workflow/workflow

invocable_carrier_execution

Specification ID
durable-workflow.v2.invocable-carrier-execution
Format and status
json_schema · in_progress
Owning contract
durable-workflow/server

Object families and owning contracts

  • invocable_carrier_contractdurable-workflow/server
  • external_execution_surface_contractdurable-workflow/server
  • external_executor_config_contractdurable-workflow/server

Worker session runtime notes

This schema covers worker-session capability discovery, lifecycle envelopes, task-affinity snapshots, and operator visibility. Its stable identifier is durable-workflow.v2.worker-sessions-runtime.

Local activity runtime notes

This schema covers local-activity capability discovery, option snapshots, history markers, retry semantics, and operator visibility. Its stable identifier is durable-workflow.v2.local-activity-runtime.

Cluster-info envelope notes

This schema covers GET /api/cluster/info and the nested discovery manifests available from that endpoint. Its stable identifier is durable-workflow.v2.cluster-info-envelope.

Formats

FormatUse
OpenAPI 3.1HTTP and JSON request-response surfaces whose routes, methods, status codes, and envelopes are part of the contract.
JSON Schema 2020-12Persisted records, event payloads, result envelopes, runtime options, and related object families.
AsyncAPI 2.6 or newerPoll, stream, lease-renewal, ordering, and delivery semantics.

Status levels

StatusMeaning
publishedThe public machine-readable specification is available at spec_url and can be consumed directly.
in_progressA public specification is available, but its coverage is partial. Listed fields and routes are normative.
plannedThe entry has a stable catalog identity but no consumable specification yet. Planned entries do not advertise spec_url.

Evolution rules

additive_minor_breaking_major allows additive changes in minor releases. Removals, renames, type narrowings, and semantic changes require a major release and should use a parallel route or field where practical.

parallel_primitive_only governs frozen wire formats. A breaking shape must be introduced under a new event type, command type, or schema identifier while the original remains decodable.

experimental_any_release applies only to explicitly experimental specifications and allows change in any release.

Release validation

Docs-site CI enforces the following machine checks:

GateWhat CI checks
catalog_aligned_with_surface_familiesEvery entry references a declared public compatibility family.
owner_repo_knownEntry and object-family owners use the catalog vocabulary.
format_knownEvery available artifact parses as its declared format.
public_spec_references_resolveEvery available spec_url is an HTTPS URL in the public protocol-spec namespace and resolves to a shipped artifact whose identity matches spec_id.
repository_local_authority_fields_rejectedPublished entries contain no repository-local paths, implementation symbols, test references, or legacy authority fields.
workflow_package_mirror_alignedThe public catalog matches the packaged Workflow catalog when that release input is available.
server_owned_spec_mirrors_alignedServer-owned published artifacts match owner-repository mirrors when those inputs are available.
diagnostic_provenance_completeValidation-only provenance covers every catalog entry and object family.
object_family_metadata_declaredCatalog entries and published documents agree on object-family names and owners.
rendered_retrieval_surfaces_alignedThe built 2.0 page and full 2.0 model-retrieval bundles expose every available entry's catalog identity, public URL, and object-family ownership.
breaking_change_release_consistent_with_evolution_ruleEvery breaking-change release value matches its evolution rule.
deliverable_specs_publishedEvery required platform surface has a published, parseable specification.

The machine check loads the public JSON catalog, validates its vocabulary and consumer-safe references, parses shipped specifications, checks object-family and embedded-schema metadata, and compares package mirrors when available. After the site and model bundles are generated, a semantic check compares their rendered catalog values to that same JSON authority. Documentation prose and heading text are not part of the comparison.

When the contract changes, update the packaged Workflow catalog, this public JSON mirror, and affected published specification artifacts together. Human review confirms that explanatory prose remains useful without treating it as machine authority.