Skip to main content

StreamConsumer

Trait StreamConsumer 

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

Source

fn connect(&mut self) -> Result<(), StreamError>

Connect to the stream source.

Source

fn subscribe(&mut self, sources: &[&str]) -> Result<(), StreamError>

Subscribe to topics/subjects/streams.

Source

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.

Source

fn commit(&mut self, offset: &StreamOffset) -> Result<(), StreamError>

Commit offset (acknowledge processing).

Source

fn disconnect(&mut self) -> Result<(), StreamError>

Disconnect from the stream source.

Source

fn is_connected(&self) -> bool

Check if connected.

Source

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".

Implementors§