Skip to main content

stormchaser_model/
outbox.rs

1//! Outbox pattern models for reliable event publishing.
2
3use crate::id::*;
4use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6use serde_json::Value;
7
8/// Represents a message scheduled for reliable delivery via the outbox pattern.
9#[derive(Debug, Serialize, Deserialize, Clone, sqlx::FromRow)]
10pub struct OutboxMessage {
11    /// Unique identifier for the outbox message.
12    pub id: i64,
13    /// Associated workflow run ID.
14    pub run_id: RunId,
15    /// Event subject or topic.
16    pub subject: String,
17    /// JSON-encoded message payload.
18    pub payload: Value,
19    /// Timestamp when the message was created.
20    pub created_at: DateTime<Utc>,
21    /// Timestamp when the message was successfully processed, if applicable.
22    pub processed_at: Option<DateTime<Utc>>,
23}