049-opentelemetry-through-the-node-binding
OpenTelemetry export through the Node binding (amends 001, 010, 027 and 028)
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
depends on
depended on by
amends
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
- 049: OpenTelemetry export through the Node binding (amends 001, 010, 027 and 028)
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The boundary exception
- 3.2 The telemetry option
- 3.3 Composition behind the host sink
- 3.4 Trace context
- 3.5 Plans, exchanges, metrics and shutdown
- 3.6 Errors
- 3.7 Declarations
- 3.8 What changes in spec 028
- 3.9 Binding principles
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
- Decisions at approval
Frozen anchors
No frozen anchors declared.