pub enum ReplayGuarantee {
NonDeterministic,
Deterministic,
}Expand description
How faithfully a Source replays its record stream
when resumed from a bookmark.
This is the source-side capability the effectively-once atomic-watermark mechanism depends on: after a crash the pipeline re-anchors the source at a persisted position, and correctness requires that nothing before that position is re-emitted and nothing after it is skipped.
Variants§
NonDeterministic
Resuming from a bookmark may replay a different record stream (query-based sources whose upstream can mutate, sources without per-page bookmarks). The default.
Deterministic
The source emits a complete resume position (bookmark) on every page, and resuming from any such bookmark continues the record stream at exactly that position — no record before the bookmark is re-emitted and none after it is skipped (immutable-log sources: CDC WAL/binlog/ change streams, Kafka partitions).
Trait Implementations§
Source§impl Clone for ReplayGuarantee
impl Clone for ReplayGuarantee
Source§fn clone(&self) -> ReplayGuarantee
fn clone(&self) -> ReplayGuarantee
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ReplayGuarantee
Source§impl Debug for ReplayGuarantee
impl Debug for ReplayGuarantee
Source§impl Default for ReplayGuarantee
impl Default for ReplayGuarantee
Source§fn default() -> ReplayGuarantee
fn default() -> ReplayGuarantee
Source§impl<'de> Deserialize<'de> for ReplayGuarantee
impl<'de> Deserialize<'de> for ReplayGuarantee
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ReplayGuarantee
Source§impl PartialEq for ReplayGuarantee
impl PartialEq for ReplayGuarantee
Source§impl Serialize for ReplayGuarantee
impl Serialize for ReplayGuarantee
impl StructuralPartialEq for ReplayGuarantee
Auto Trait Implementations§
impl Freeze for ReplayGuarantee
impl RefUnwindSafe for ReplayGuarantee
impl Send for ReplayGuarantee
impl Sync for ReplayGuarantee
impl Unpin for ReplayGuarantee
impl UnsafeUnpin for ReplayGuarantee
impl UnwindSafe for ReplayGuarantee
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request