Instrumentation
Liminal is instrumented with Effect spans and logs at the runtime boundaries where a client, transport, Worker, Durable Object, or actor handler hands work to the next layer.
If you provide an Effect OpenTelemetry layer, those built-in spans and logs are exported without changing your actor code.
Built-in coverage
Liminal uses Effect's tracing model. Every span is a normal Effect span, every diagnostic log is an Effect log, and
propagation works through Effect's Tracer service.
The built-in instrumentation covers Worker requests, Durable Object upgrades, Durable Object fetches, socket messages, actor lifecycle hooks, method handlers, event sends, client calls, client send/listen loops, and client-side event enqueueing. Method responses complete the original client call under the stored client span; they do not create a separate response span.
Read Collectors for useful span names and attributes.
Logs
Liminal adds structured log annotations through its diagnostic helpers, including package/module fields and operation-specific fields such as method or event tags.
When an OTLP logger is installed, Effect log records include the active trace and span identifiers, so logs line up with the surrounding traces in your backend.
Setup
- Propagation covers trace context across HTTP, WebSockets, and worker messages.
- Session Continuity covers hibernatable Cloudflare sockets.
- Trace Story shows a browser-to-actor call from end to end.
- Browser Setup configures the client runtime.
- Cloudflare Setup configures Worker and actor runtimes.
- Collectors lists useful span names, attributes, and collector requirements.