Takoform / Edge Forms All Forms

edge.forms.takoform.com/DurableWorkflow@0.1.0

Durable Workflow

Make a Worker's durable workflow class available.

Public package readback verified

Host support and admission are separate from package publication. These fields describe portable desired state, not a provider-specific deployment command.

How it fits

Every traffic-weighted WorkerVersion must export the class. Workflow instances are runtime data; this Form represents the workflow capability, not each run.

Works with: Module Worker · Worker Version · Worker Deployment

Full contract description

Long-lived identity of one code-defined durable workflow: a class the worker's active deployment serves, whose instances survive process death. The Form fixes the execution model by identity — the worker.workflow@1.0.0 contract in its providedInterfaces states memoized replay, at-least-once step execution, the closed status vocabulary, and the two bounds that keep an instance finite. It carries NO implementation snapshot: which code answers is whatever the worker's active Worker Deployment selects, so behavior upgrades and rollback ride the deployment like any other traffic change. Instances are runtime data reached through module-worker.workflow bindings, never Resources. One worker carries at most one Durable Workflow per class name.

Kind
DurableWorkflow
Definition version
0.1.0
Role
identity

Desired state

classNameRequired · string
Class export name the serving module provides, in the JavaScript identifier grammar. Every weighted version of the active deployment must export it; one that does not keeps this workflow from becoming Ready, and creating an instance against it is refused rather than queued.
  • pattern: "^[A-Za-z_$][A-Za-z0-9_$]*$"
workerRequired · object
Module Worker identity whose active deployment serves this workflow class. Changing it replaces the workflow.
  • additionalProperties: false

Example desired state

This is the exact fixtures/desired.json from this package, not a complete Host API request or OpenTofu configuration. Replace example resource references and artifact digests with your own; it does not provision anything by itself.

{
  "className": "OrderFulfilment",
  "worker": {
    "apiVersion": "edge.forms.takoform.com",
    "kind": "ModuleWorker",
    "name": "module-worker"
  }
}
Read source fixture
Full desired-state schema

Nested fields, allowed alternatives and all schema constraints. Host-validated semantics also apply; read the contract description above.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Long-lived identity of one code-defined durable workflow: a class the worker's active deployment serves, whose instances survive process death. The Form fixes the execution model by identity — the worker.workflow@1.0.0 contract in its providedInterfaces states memoized replay, at-least-once step execution, the closed status vocabulary, and the two bounds that keep an instance finite. It carries NO implementation snapshot: which code answers is whatever the worker's active Worker Deployment selects, so behavior upgrades and rollback ride the deployment like any other traffic change. Instances are runtime data reached through module-worker.workflow bindings, never Resources. One worker carries at most one Durable Workflow per class name.",
  "properties": {
    "className": {
      "description": "Class export name the serving module provides, in the JavaScript identifier grammar. Every weighted version of the active deployment must export it; one that does not keeps this workflow from becoming Ready, and creating an instance against it is refused rather than queued.",
      "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
      "type": "string"
    },
    "worker": {
      "additionalProperties": false,
      "description": "Module Worker identity whose active deployment serves this workflow class. Changing it replaces the workflow.",
      "properties": {
        "apiVersion": {
          "const": "edge.forms.takoform.com",
          "type": "string"
        },
        "kind": {
          "const": "ModuleWorker",
          "type": "string"
        },
        "name": {
          "maxLength": 63,
          "minLength": 1,
          "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
          "type": "string"
        }
      },
      "required": [
        "apiVersion",
        "kind",
        "name"
      ],
      "type": "object",
      "x-takoform-required-interface": {
        "apiVersion": "interfaces.takoform.com/v1alpha1",
        "name": "worker.runtime",
        "schemaDigest": "sha256:ed2f8211aac5be94488d391945ca6aca7627a4ecbd261e39790093e887feae08",
        "version": "1.1.0"
      }
    }
  },
  "required": [
    "className",
    "worker"
  ],
  "title": "Durable Workflow desired state",
  "type": "object"
}

Lifecycle

  • create
  • read
  • delete
  • import
  • observe

Provided interfaces

  • worker.workflow@1.0.0sha256:6b652dd311975da84469a5ec44f48acbc6db2097d1473988bd5424a85fda4294

Canonical package locator

Package digest
sha256:016ec7ec8a1a8333ab6d6aa63e4eb450fc2df47fca06e262a56cc064171d04d1
Schema digest
sha256:eed7a1b971e3261df6bc4bafcdfa2fd67e7928f4ec66737d0134df383e7dfc0a
Tag
forms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2eovzgcytmmvlw64tlmzwg65y/sha256-016ec7ec8a1a8333ab6d6aa63e4eb450fc2df47fca06e262a56cc064171d04d1
Source path
forms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2eovzgcytmmvlw64tlmzwg65y/sha256-016ec7ec8a1a8333ab6d6aa63e4eb450fc2df47fca06e262a56cc064171d04d1
Signed set
e7f8a39311dd011b8467e97e7f300cabb9a6b06c
Open immutable package
Four-field FormRef
{
  "apiVersion": "edge.forms.takoform.com",
  "kind": "DurableWorkflow",
  "definitionVersion": "0.1.0",
  "schemaDigest": "sha256:eed7a1b971e3261df6bc4bafcdfa2fd67e7928f4ec66737d0134df383e7dfc0a"
}