049-opentelemetry-through-the-node-binding

OpenTelemetry export through the Node binding (amends 001, 010, 027 and 028)

Lifecycle approvedImplementation completeVerification unknownQualification unknown

A narrow amendment of approved specs 027 (Node-API binding) and 028 (OpenTelemetry evidence sink), with the boundary exception it needs in specs 001 and 010. A TypeScript host gains an optional `telemetry` option on `Engine.create`: the binding attaches spec 028's `OtelSink` behind the host's own sink of record through 028's `TeeSink`, exports to a JSONL file or over OTLP/HTTP to an allowlisted collector, wires 028's `begin` to each decision's `traceparent` and returns the trace and root span ids, registers compiled plans, forwards exchange records the host passes, reports the sink's counters in the engine's gauges and flushes on shutdown. Every value passes 028's redaction policy; the receipt, run record and judgment bytes are unchanged. `rustev-node` becomes the one integration crate, besides the facade, that may depend on another integration crate, and only on `rustev-otel`. Ratified by the owner on 2026-10-23 (A-51).

Read the full pinned specification ↗

Relationships

Claimed units

  • extends
    {
      "nature": "amending",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-node/"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "tools/rustev-boundaries/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Cargo.toml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Cargo.lock"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Makefile"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "scripts/acceptance/"
      }
    }

Source headings

  1. 049: OpenTelemetry export through the Node binding (amends 001, 010, 027 and 028)
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 The boundary exception
  6. 3.2 The telemetry option
  7. 3.3 Composition behind the host sink
  8. 3.4 Trace context
  9. 3.5 Plans, exchanges, metrics and shutdown
  10. 3.6 Errors
  11. 3.7 Declarations
  12. 3.8 What changes in spec 028
  13. 3.9 Binding principles
  14. 4. Out of scope
  15. 5. Observable negative cases
  16. Acceptance
  17. Verification
  18. Implementation record
  19. Decisions at approval

Frozen anchors

No frozen anchors declared.