Skip to content

Trace topology

A single HTTP request fans out across actions, events, reactions, and projection writes — every step inherits the same envelope.correlationId and links back to its parent via causationId. That two-field chain is what lets Studio (and nwire trace) reconstruct an entire call graph from any node in the tree.

What ties the graph together:

  • envelope.correlationId — same value across every node in the tree. This is the public handle you pass to nwire trace.
  • envelope.causationId — points at the immediate parent. Studio uses this to render the tree.
  • envelope.tenant — propagated unchanged so multi-tenant traces stay scoped.

Every node above is also a telemetry event, so you can replay the same graph from the recorded stream offline.

See also

MIT licensed.