V9.17.0
High-water health check: opt-in autoRestart + heartbeat primary signal (#4986)
Builds on the detection-only check from 9.16 (#4984). Requires JasperFx 2.32.0 (#539), which this release rolls up to (#4987).
- Opt-in
autoRestart—AddMartenHighWaterHealthCheck(TimeSpan? staleThreshold = null, long minimumGap = 1, bool autoRestart = false). When the check is Unhealthy andautoRestartis on, it asks the local projection coordinator's daemon to restart the high-water agent's poll loop only — the mark is never advanced — capped to once per staleness window per database. The cycle is still reported Unhealthy so an alert still fires. Intended for Solo / leader nodes. - Heartbeat is now the primary staleness signal — when
EnableExtendedProgressionTrackingis on, the high-water agent stamps a liveness heartbeat on theHighWaterMarkrow every poll cycle. Heartbeat age proves the loop is cycling independent of whether the mark advances, so a quiet store is never a false positive, and a dead agent is caught even when projections are fully caught up (the exact #4961 blind spot). The original sequence-gap heuristic is retained as theExtendedProgression-off fallback.
Full changelog: V9.16.1...V9.17.0