Takoform / Edge Forms All Forms

edge.forms.takoform.com/ActorNamespace@0.1.0

Actor Namespace

Give a Worker actor class a persistent identity space.

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. Actor instances are runtime data, not individual Form Resources.

Works with: Module Worker · Worker Version · Worker Deployment

Full contract description

Long-lived identity of one addressable-actor id space: a class the worker's active deployment serves, with at most one live execution context per actor id, private durable storage per id, and one alarm per id. The Form fixes that model by identity through the worker.actor@1.0.0 contract in its providedInterfaces; it carries no implementation snapshot, so which code answers is whatever the worker's active Worker Deployment selects. Actors are runtime data reached through module-worker.actor bindings, never Resources: every id addresses an actor and the first delivery is its creation. One worker carries at most one Actor Namespace per class name, because two namespaces over one class would give that class two disjoint id spaces.

Kind
ActorNamespace
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 namespace from becoming Ready, and invoking a stub of it is refused rather than queued.
  • pattern: "^[A-Za-z_$][A-Za-z0-9_$]*$"
workerRequired · object
Module Worker identity whose active deployment serves this actor class. Changing it replaces the namespace.
  • 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": "ChatRoom",
  "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 addressable-actor id space: a class the worker's active deployment serves, with at most one live execution context per actor id, private durable storage per id, and one alarm per id. The Form fixes that model by identity through the worker.actor@1.0.0 contract in its providedInterfaces; it carries no implementation snapshot, so which code answers is whatever the worker's active Worker Deployment selects. Actors are runtime data reached through module-worker.actor bindings, never Resources: every id addresses an actor and the first delivery is its creation. One worker carries at most one Actor Namespace per class name, because two namespaces over one class would give that class two disjoint id spaces.",
  "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 namespace from becoming Ready, and invoking a stub of 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 actor class. Changing it replaces the namespace.",
      "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": "Actor Namespace desired state",
  "type": "object"
}

Lifecycle

  • create
  • read
  • delete
  • import
  • observe

Provided interfaces

  • worker.actor@1.0.0sha256:f5428fb587de80261dd7363dc5b8a3f4aab7e469fa1b5fce8441ad9acbec8218

Canonical package locator

Package digest
sha256:eb174b666890ef630e82746374c8a91aec8692c64e98e82dc580a85d17307743
Schema digest
sha256:3669f3bebf7b4c6169d5a3cdf7e7ca4e8d1851516702a437be6ef69c2b9b98d7
Tag
forms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2bmn2g64somfwwk43qmfrwk/sha256-eb174b666890ef630e82746374c8a91aec8692c64e98e82dc580a85d17307743
Source path
forms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2bmn2g64somfwwk43qmfrwk/sha256-eb174b666890ef630e82746374c8a91aec8692c64e98e82dc580a85d17307743
Signed set
e7f8a39311dd011b8467e97e7f300cabb9a6b06c
Open immutable package
Four-field FormRef
{
  "apiVersion": "edge.forms.takoform.com",
  "kind": "ActorNamespace",
  "definitionVersion": "0.1.0",
  "schemaDigest": "sha256:3669f3bebf7b4c6169d5a3cdf7e7ca4e8d1851516702a437be6ef69c2b9b98d7"
}