Expand description
Message envelope types for exactly-once processing.
This module provides types for wrapping stream items with unique identifiers and metadata, enabling features like deduplication, offset tracking, and exactly-once processing guarantees.
§Overview
The core types are:
MessageId: A unique identifier for messagesMessage<T>: A wrapper that adds an ID and metadata to a payloadMessageMetadata: Additional information about a message
§Example
use streamweave::message::{Message, MessageId, MessageMetadata, IdGenerator, UuidGenerator};
// Create a message with a UUID
let generator = UuidGenerator::new();
let msg = Message::new(42, generator.next_id());
assert_eq!(*msg.payload(), 42);Structs§
- Content
Hash Generator - Content-hash ID generator.
- Message
- A message envelope that wraps a payload with an ID and metadata.
- Message
Metadata - Metadata associated with a message.
- Sequence
Generator - Sequence-based ID generator.
- Uuid
Generator - UUID-based ID generator.
Enums§
- Message
Id - A unique identifier for messages.
Traits§
- IdGenerator
- Trait for types that generate message IDs.
Functions§
- sequence_
generator - Create a shared sequence generator.
- sequence_
generator_ from - Create a shared sequence generator starting at the given value.
- uuid_
generator - Create a shared UUID generator.
Type Aliases§
- Shared
IdGenerator - A shared ID generator that can be cloned across threads.