pig/obs/dispatcher
Dispatcher actor for observability events.
The dispatcher is an OTP actor that:
- Receives
Event(SessionEvent)messages - Calls
emit_telemetry(event)— projects lightweight metrics to:telemetry(ALWAYS, by construction) - Fans out the full event to registered consumers (fire-and-forget
process.send) - 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
-
Event(events.SessionEvent)A session event to dispatch to consumers and telemetry.
-
RegisterConsumer(process.Subject(events.SessionEvent))Register a new consumer to receive session events.
-
StopStop the dispatcher actor (for testing/cleanup).
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.