namespace ZB.MOM.WW.MxGateway.Server.Configuration; public sealed class EventOptions { /// /// Gets the event queue capacity. /// public int QueueCapacity { get; init; } = 10_000; /// /// Gets the backpressure policy for event queue overflow. /// public EventBackpressurePolicy BackpressurePolicy { get; init; } = EventBackpressurePolicy.FailFast; /// /// Gets the maximum number of events retained in the per-session replay ring buffer /// used to re-deliver events a returning subscriber missed (reconnect/reattach). /// When the buffer exceeds this count the oldest retained events are evicted first. /// A value of 0 disables replay retention entirely. /// public int ReplayBufferCapacity { get; init; } = 1024; /// /// Gets the maximum age, in seconds, of an event retained in the per-session replay /// ring buffer. Entries older than this are evicted regardless of capacity. A value /// of 0 disables age-based eviction (only /// bounds the buffer). /// public double ReplayRetentionSeconds { get; init; } = 300; /// /// Gets the maximum total_length a sparse-array write may declare before the /// gateway rejects it with InvalidArgument, enforced in /// before the full array is materialized. /// Guards against a single write forcing a multi-GB allocation. The default of /// 1,000,000 elements is far above any realistic MXAccess array write yet well below /// the frame-size ceiling. /// public int MaxSparseArrayLength { get; init; } = 1_000_000; }