Expand description
JetStream support with builder pattern.
This module provides typed JetStream operations including:
- Stream creation and management with builder pattern
- Push and pull consumers
- Interest-based consumers
- Work queues
§Example
use intercom::{Client, MsgPackCodec, jetstream::stream::StreamConfig};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Event {
id: u64,
data: String,
}
let client = Client::<MsgPackCodec>::connect("nats://localhost:4222").await?;
let jetstream = client.jetstream();
// Create a stream with builder pattern
let stream = jetstream
.stream_builder("events")
.subjects(vec!["events.>".to_string()])
.max_messages(1_000_000)
.create()
.await?;
// Publish typed messages
jetstream.publish::<Event>("events.user", &Event {
id: 1,
data: "user created".to_string(),
}).await?;
// Create a pull consumer
let consumer = stream
.pull_consumer_builder::<Event>("my-consumer")
.durable()
.create()
.await?;