Unify the InboundAPI IActiveNodeGate with the shared ZB.MOM.WW.Health IActiveNodeGate #80

Open
opened 2026-11-06 15:26:20 -05:00 by dohertj2 · 0 comments
Owner

ScadaBridge has its own ZB.MOM.WW.ScadaBridge.InboundAPI.IActiveNodeGate, implemented by src/ZB.MOM.WW.ScadaBridge.Host/Health/ActiveNodeGate.cs and used by InboundApiEndpointFilter to return 503 on a standby. Its logic matches the shared ZB.MOM.WW.Health IActiveNodeGate/AkkaActiveNodeGate (both route to oldest-Up via ClusterActiveNode/ClusterActivityEvaluator), but it is a separate interface. Health gap L2 / backlog item #3 was deferred because unifying it touches the inbound-API path.

Current state: still separate (verified 2026-11-06). Fix: register the shared gate and have the inbound filter consume ZB.MOM.WW.Health.IActiveNodeGate, then delete the local interface and implementation. Keep the warm-up behaviour (not active until the ActorSystem exists and the member is Up).

Source: scadaproj components/health/GAPS.md (Gap L2; "#3 IActiveNodeGate seam unification (ScadaBridge) — DEFERRED")

ScadaBridge has its own `ZB.MOM.WW.ScadaBridge.InboundAPI.IActiveNodeGate`, implemented by `src/ZB.MOM.WW.ScadaBridge.Host/Health/ActiveNodeGate.cs` and used by `InboundApiEndpointFilter` to return 503 on a standby. Its logic matches the shared `ZB.MOM.WW.Health` `IActiveNodeGate`/`AkkaActiveNodeGate` (both route to oldest-Up via `ClusterActiveNode`/`ClusterActivityEvaluator`), but it is a separate interface. Health gap L2 / backlog item #3 was deferred because unifying it touches the inbound-API path. **Current state:** still separate (verified 2026-11-06). Fix: register the shared gate and have the inbound filter consume `ZB.MOM.WW.Health.IActiveNodeGate`, then delete the local interface and implementation. Keep the warm-up behaviour (not active until the ActorSystem exists and the member is Up). Source: scadaproj `components/health/GAPS.md` (Gap L2; "#3 IActiveNodeGate seam unification (ScadaBridge) — DEFERRED")
dohertj2 added the type:debtpriority:p3cross-repomigrated labels 2026-11-06 15:26:20 -05:00
Sign in to join this conversation.