pig/obs/dispatcher

Dispatcher actor for observability events.

The dispatcher is an OTP actor that:

  1. Receives Event(SessionEvent) messages
  2. Calls emit_telemetry(event) — projects lightweight metrics to :telemetry (ALWAYS, by construction)
  3. Fans out the full event to registered consumers (fire-and-forget process.send)
  4. Accepts RegisterConsumer(Subject(SessionEvent)) to dynamically add consumers

Types

Messages that the dispatcher actor can receive.

pub type DispatcherMessage {
  Event(events.SessionEvent)
  RegisterConsumer(process.Subject(events.SessionEvent))
  Stop
}

Constructors

Values

pub fn start() -> Result(
  process.Subject(DispatcherMessage),
  actor.StartError,
)

Start a new dispatcher actor.

pub fn supervised(
  name: process.Name(DispatcherMessage),
) -> supervision.ChildSpecification(Nil)

Create a supervised dispatcher actor for use in a supervision tree.

Search Document