namespace ZB.MOM.WW.ScadaBridge.PerformanceTests.Failover; /// /// Failover-timing benchmark harness (placeholder). /// /// Design envelope under test (CLAUDE.md "Cluster & Failover"): failure /// detection 2s heartbeat / 10s threshold, SBR stable-after 15s, total /// failover ~25s for a hard node loss. /// /// Measurement protocol (to be wired to the two-node cluster rig delivered /// by PLAN-01 — see archreview/plans/PLAN-01-*.md; do not duplicate that rig /// here): /// 1. Form a real 2-node cluster (docker/ topology or Akka.Remote in-proc /// multi-ActorSystem rig from PLAN-01). /// 2. Confirm a cluster singleton (e.g. site DeploymentManager) is hosted /// on node A; record T0. /// 3. Hard-kill node A (process kill / ActorSystem.Abort — not /// CoordinatedShutdown; graceful stop exercises a different path). /// 4. Poll node B for singleton re-host; record T1 at first successful /// response from the migrated singleton. /// 5. Assert T1 - T0 <= 40s (25s design + margin) and report the number. /// public class FailoverTimingTests { [Trait("Category", "Performance")] [Fact(Skip = "Requires the real two-node failover rig delivered by PLAN-01 " + "(overall review P2-10). This class documents the measurement " + "protocol; wire it to the rig when PLAN-01 lands.")] public void HardKillFailover_SingletonRehostedWithinDesignEnvelope() { // Intentionally empty until the PLAN-01 rig exists. } }