pub trait Observer:
Debug
+ Send
+ Sync {
// Provided methods
fn on_indexes_ensured(&self, count: usize) { ... }
fn on_backfill_started(&self, indexes: &[IndexName]) { ... }
fn on_index_seeded(&self, index: &IndexName) { ... }
fn on_backfill_completed(&self) { ... }
fn on_live_started(&self) { ... }
fn on_change_captured(&self) { ... }
fn on_batch_committed(&self, stats: BatchStats) { ... }
fn on_slot_lag(&self, bytes: u64) { ... }
fn on_document_quarantined(&self, index: &str, id: &str, reason: &str) { ... }
fn on_error(&self, error: &str) { ... }
}Expand description
A sink for the engine’s lifecycle and progress events.
See this module’s docs for the hot-path contract. All methods default to no-ops.
Provided Methods§
Sourcefn 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.
Sourcefn on_backfill_started(&self, indexes: &[IndexName])
fn on_backfill_started(&self, indexes: &[IndexName])
Backfill is starting for indexes (those the sink reported unseeded).
Sourcefn on_index_seeded(&self, index: &IndexName)
fn on_index_seeded(&self, index: &IndexName)
index’s backfill is complete and it has been marked seeded.
Sourcefn on_backfill_completed(&self)
fn on_backfill_completed(&self)
The backfill phase finished (all unseeded indexes seeded), or was skipped.
Sourcefn on_live_started(&self)
fn on_live_started(&self)
Live capture has started; the pipeline is now following ongoing changes.
Sourcefn on_change_captured(&self)
fn on_change_captured(&self)
One change was pulled from the source into the queue.
Sourcefn on_batch_committed(&self, stats: BatchStats)
fn on_batch_committed(&self, stats: BatchStats)
A batch was built, flushed, and acked. See BatchStats.
Sourcefn 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.
Sourcefn 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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".