Helpers for emitting failed messages to dedicated delay/dead-letter subjects.
use gsm_dlq::{DlqError, DlqPublisher};
# fn main() -> anyhow::Result<()> {
# let rt = tokio::runtime::Runtime::new()?;
rt.block_on(async {
let client = async_nats::connect("nats://127.0.0.1:4222").await?;
let dlq = DlqPublisher::new("egress", client).await?;
dlq
.publish(
"acme",
"webex",
"msg-1",
1,
DlqError {
code: "E_SEND".into(),
message: "provider returned 500".into(),
stage: Some("egress".into()),
},
&serde_json::json!({"chat_id": "room-1"}),
)
.await?;
anyhow::Ok(())
})
# }