Module jetstream

Module jetstream 

Source
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?;

Modules§

consumer
JetStream consumer types and builders.
context
JetStream context for managing streams and publishing messages.
queue
Work queue support for JetStream.
stream
JetStream stream configuration and management.