pub struct ReliableMessage {
pub message_id: String,
pub event: StreamEvent,
pub retry_count: u32,
pub first_attempt: DateTime<Utc>,
pub last_attempt: DateTime<Utc>,
pub errors: Vec<String>,
pub checksum: Option<String>,
pub sequence_number: Option<u64>,
pub partition_key: Option<String>,
pub replay_count: u32,
pub last_replay_attempt: Option<DateTime<Utc>>,
pub replay_status: ReplayStatus,
}Expand description
Message wrapper with reliability metadata
Fields§
§message_id: StringUnique message ID for deduplication
event: StreamEventOriginal event
retry_count: u32Number of retry attempts
first_attempt: DateTime<Utc>First attempt timestamp
last_attempt: DateTime<Utc>Last attempt timestamp
errors: Vec<String>Error history
checksum: Option<String>Message checksum for integrity
sequence_number: Option<u64>Sequence number for ordering
partition_key: Option<String>Partition key for ordering within partition
replay_count: u32Number of replay attempts from DLQ
last_replay_attempt: Option<DateTime<Utc>>Last replay attempt timestamp
replay_status: ReplayStatusReplay status
Implementations§
Source§impl ReliableMessage
impl ReliableMessage
Sourcepub fn new(event: StreamEvent) -> Self
pub fn new(event: StreamEvent) -> Self
Create a new reliable message
Sourcepub fn should_retry(&self, max_retries: u32) -> bool
pub fn should_retry(&self, max_retries: u32) -> bool
Check if message should be retried
Sourcepub fn next_retry_delay(&self, config: &ReliabilityConfig) -> Duration
pub fn next_retry_delay(&self, config: &ReliabilityConfig) -> Duration
Calculate next retry delay
Trait Implementations§
Source§impl Clone for ReliableMessage
impl Clone for ReliableMessage
Source§fn clone(&self) -> ReliableMessage
fn clone(&self) -> ReliableMessage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ReliableMessage
impl Debug for ReliableMessage
Source§impl<'de> Deserialize<'de> for ReliableMessage
impl<'de> Deserialize<'de> for ReliableMessage
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ReliableMessage
impl RefUnwindSafe for ReliableMessage
impl Send for ReliableMessage
impl Sync for ReliableMessage
impl Unpin for ReliableMessage
impl UnsafeUnpin for ReliableMessage
impl UnwindSafe for ReliableMessage
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.