pub struct FanOut { /* private fields */ }Expand description
An Observer that forwards every event to several observers in turn.
The engine drives a single observer, so this composes many — e.g. one that
updates a status surface and one that records metrics — without the engine
knowing how many there are. Mirrors FanOutSink.
Implementations§
Trait Implementations§
Source§impl Observer for FanOut
impl Observer for FanOut
Source§fn on_indexes_ensured(&self, count: usize)
fn on_indexes_ensured(&self, count: usize)
The target indexes have been ensured at the sink (
count of them),
before any documents flow.Source§fn on_backfill_started(&self, indexes: &[IndexName])
fn on_backfill_started(&self, indexes: &[IndexName])
Backfill is starting for
indexes (those the sink reported unseeded).Source§fn on_index_seeded(&self, index: &IndexName)
fn on_index_seeded(&self, index: &IndexName)
index’s backfill is complete and it has been marked seeded.Source§fn on_backfill_completed(&self)
fn on_backfill_completed(&self)
The backfill phase finished (all unseeded indexes seeded), or was skipped.
Source§fn on_live_started(&self)
fn on_live_started(&self)
Live capture has started; the pipeline is now following ongoing changes.
Source§fn on_change_captured(&self)
fn on_change_captured(&self)
One change was pulled from the source into the queue.
Source§fn on_batch_committed(&self, stats: BatchStats)
fn on_batch_committed(&self, stats: BatchStats)
A batch was built, flushed, and acked. See
BatchStats.Source§fn on_slot_lag(&self, bytes: u64)
fn on_slot_lag(&self, bytes: u64)
The source’s capture lag, in bytes behind the latest position — e.g. a
replication slot’s distance from the server’s current WAL. Reported by
whoever polls
ChangeCapture::lag,
not by the engine loop itself.Source§fn on_document_quarantined(&self, index: &str, id: &str, reason: &str)
fn on_document_quarantined(&self, index: &str, id: &str, reason: &str)
A document was quarantined: the sink rejected it at the item level
and the engine’s failure policy is to skip and continue (see
FailurePolicy::Skip). The document is not
applied and the batch proceeds, so it is not redelivered — this is the
signal to surface it (a metric, a log, a dead-letter record). index and
id are the destination’s names for it; reason is why it was rejected.Auto Trait Implementations§
impl !RefUnwindSafe for FanOut
impl !UnwindSafe for FanOut
impl Freeze for FanOut
impl Send for FanOut
impl Sync for FanOut
impl Unpin for FanOut
impl UnsafeUnpin for FanOut
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more