namespace ScadaLink.AuditLog.Site.Telemetry; /// /// Tuning knobs for the site-side drain /// loop. Defaults mirror Bundle D's plan: drain every 5 s while rows are /// flowing (busy), every 30 s when the queue is empty (idle). /// public sealed class SiteAuditTelemetryOptions { /// /// Maximum number of /// rows read from the site SQLite queue and pushed in a single gRPC batch. /// public int BatchSize { get; set; } = 256; /// /// Delay between drains when the previous drain found at least one Pending /// row OR the previous push faulted. Re-drain quickly to keep telemetry /// flowing and to retry transient gRPC errors. /// public int BusyIntervalSeconds { get; set; } = 5; /// /// Delay between drains when the previous drain found no Pending rows. /// Longer interval avoids hammering an idle SQLite + gRPC channel. /// public int IdleIntervalSeconds { get; set; } = 30; }