aboutsummaryrefslogtreecommitdiffstats
path: root/crates/configuration/src/server/reload_stream.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/configuration/src/server/reload_stream.rs')
-rw-r--r--crates/configuration/src/server/reload_stream.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/crates/configuration/src/server/reload_stream.rs b/crates/configuration/src/server/reload_stream.rs
new file mode 100644
index 0000000..d2ee4ab
--- /dev/null
+++ b/crates/configuration/src/server/reload_stream.rs
@@ -0,0 +1,21 @@
+use async_nats::jetstream::Context;
+use tracing::{debug, info};
+
+use crate::cnfg::JetstreamConfig;
+
+pub async fn create_stream(jetstream: &Context, config: &JetstreamConfig) -> anyhow::Result<()> {
+ debug!(name = ?config.stream, "initialising stream");
+
+ jetstream
+ .get_or_create_stream(async_nats::jetstream::stream::Config {
+ name: config.stream.to_string(),
+ max_messages: config.max_messages,
+ subjects: vec![config.subject.to_string()],
+ ..Default::default()
+ })
+ .await?;
+
+ info!(name = ?config.stream, subject = ?config.subject, "stream is ready");
+
+ Ok(())
+}