Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Propagation

There are two propagation paths.

HTTP boundaries use Effect's HttpTraceContext module, which reads and writes standard tracing headers:

  • W3C traceparent
  • B3 single-header b3
  • B3 multi-header x-b3-*

WebSocket messages and browser worker-runner messages use a small Liminal trace envelope:

{
  traceId: string
  spanId: string
  sampled: boolean
}

That envelope appears on protocol messages that need per-message causality:

  • F.Payload.trace for client-to-actor method calls
  • Event.trace for actor-to-client events

This mirrors Effect RPC's socket propagation strategy: the sender includes the current span identity in the message envelope, and the receiver turns it back into an external parent span.