Observer Event Publication¶
Every IQ implements IObservable<IJobEvent>.
- Ordinary job failures are published through
OnNext. OnErroris reserved for fatal dispatcher failures.OnJobEventChangedexists for lightweight async forwarding.
Internally, JobObserverHub uses a queued pump based on ConcurrentQueue<ObserverMessage> and SemaphoreSlim instead of spawning one Task.Run per event.