pub trait StreamConsumer: Send + Sync {
// Required methods
fn connect(&mut self) -> Result<(), StreamError>;
fn subscribe(&mut self, sources: &[&str]) -> Result<(), StreamError>;
fn poll(&mut self, max: usize) -> Result<Vec<StreamMessage>, StreamError>;
fn commit(&mut self, offset: &StreamOffset) -> Result<(), StreamError>;
fn disconnect(&mut self) -> Result<(), StreamError>;
fn is_connected(&self) -> bool;
fn metrics(&self) -> StreamConsumerMetrics;
}Expand description
Trait for stream consumer implementations.
Each provider (Kafka, Redis, NATS) implements this trait. The runtime bridges consumed messages into K2K messages.
Required Methods§
Sourcefn connect(&mut self) -> Result<(), StreamError>
fn connect(&mut self) -> Result<(), StreamError>
Connect to the stream source.
Sourcefn subscribe(&mut self, sources: &[&str]) -> Result<(), StreamError>
fn subscribe(&mut self, sources: &[&str]) -> Result<(), StreamError>
Subscribe to topics/subjects/streams.
Sourcefn poll(&mut self, max: usize) -> Result<Vec<StreamMessage>, StreamError>
fn poll(&mut self, max: usize) -> Result<Vec<StreamMessage>, StreamError>
Poll for new messages (non-blocking).
Returns up to max messages, or empty if none available.
Sourcefn commit(&mut self, offset: &StreamOffset) -> Result<(), StreamError>
fn commit(&mut self, offset: &StreamOffset) -> Result<(), StreamError>
Commit offset (acknowledge processing).
Sourcefn disconnect(&mut self) -> Result<(), StreamError>
fn disconnect(&mut self) -> Result<(), StreamError>
Disconnect from the stream source.
Sourcefn is_connected(&self) -> bool
fn is_connected(&self) -> bool
Check if connected.
Sourcefn metrics(&self) -> StreamConsumerMetrics
fn metrics(&self) -> StreamConsumerMetrics
Get consumer metrics.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".