Phase 6.3 Stream A - RedundancyTopology + ClusterTopologyLoader + RedundancyCoordinator #98
Reference in New Issue
Block a user
Delete Branch "phase-6-3-stream-a-topology-loader"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Data path that feeds the Phase 6.3 ServiceLevelCalculator (PR #89). Stream C OPC UA node wiring still deferred to task #147.
Summary
RedundancyTopologyimmutable snapshot +ServerUriArray()per OPC UA Part 4 §6.6.2.2 (self first, peers lexicographic).ClusterTopologyLoaderpure fn enforcing Stream A.1 invariants: 1-2 nodes per cluster (decision #83); unique ApplicationUri (#86); ≤ 1 Primary in Warm/Hot (#84); self is a cluster member; every node belongs to target cluster. Violations throwInvalidTopologyException.RedundancyCoordinatorsingleton:InitializeAsyncthrows on invariant violation (startup fails fast);RefreshAsynclogs + flipsIsTopologyValid=false(runtime falls toServiceLevelBand.InvalidTopology=2instead of tearing down). Volatile CAS-style swap for readers.Test plan
dotnet test: 1178 passing (was 1168, +10).🤖 Generated with Claude Code