namespace ScadaLink.NotificationOutbox; /// /// Configuration options for the Notification Outbox component: dispatch cadence, /// batch sizing, stuck-message detection, terminal retention, and KPI windowing. /// public class NotificationOutboxOptions { /// Interval between dispatch sweeps that pick up pending notifications for delivery. public TimeSpan DispatchInterval { get; set; } = TimeSpan.FromSeconds(10); /// Maximum number of notifications claimed for delivery in a single dispatch sweep. public int DispatchBatchSize { get; set; } = 100; /// Age past which an in-progress notification is considered stuck and re-claimed. public TimeSpan StuckAgeThreshold { get; set; } = TimeSpan.FromMinutes(10); /// Retention period for notifications in a terminal state before they are purged. public TimeSpan TerminalRetention { get; set; } = TimeSpan.FromDays(365); /// Interval between background purge sweeps of terminal notifications. public TimeSpan PurgeInterval { get; set; } = TimeSpan.FromDays(1); /// Trailing window used to compute the delivered-notifications throughput KPI. public TimeSpan DeliveredKpiWindow { get; set; } = TimeSpan.FromMinutes(1); }