Skip to main content

Observer

Trait Observer 

Source
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§

Source

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])

Backfill is starting for indexes (those the sink reported unseeded).

Source

fn on_index_seeded(&self, index: &IndexName)

index’s backfill is complete and it has been marked seeded.

Source

fn on_backfill_completed(&self)

The backfill phase finished (all unseeded indexes seeded), or was skipped.

Source

fn on_live_started(&self)

Live capture has started; the pipeline is now following ongoing changes.

Source

fn on_change_captured(&self)

One change was pulled from the source into the queue.

Source

fn on_batch_committed(&self, stats: BatchStats)

A batch was built, flushed, and acked. See BatchStats.

Source

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)

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.

Source

fn on_error(&self, error: &str)

The pipeline stopped on an error (rendered to a string, since the engine’s error type is not part of this neutral surface).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§