R2-02: Communication & Store-and-Forward round-2 fixes incl. Critical N1 (15 tasks) #9

Closed
dohertj2 wants to merge 0 commits from r2-plan02 into main
Owner

Round-2 architecture-review fixes — PLAN-R2-02 (Communication & Store-and-Forward), all 15 tasks incl. the round-2 Critical (N1). Source: archreview/02-communication-store-and-forward.md.

TDD throughout; per-task pathspec commits; full slnx build 0/0; targeted suites green (full-suite sweep at integration merge).

Critical N1 + High N2 spine (T1–T7):

  • T1 91209070 shared oldest-Up ActiveNodeEvaluator in Communication; Host evaluator delegates
  • T2 6e0fa213 failing two-node repro — leader-vs-oldest resync divergence wipes delivering node buffer
  • T3 3a5b885a resync authority uses the shared oldest-Up predicate + delivery-gate delegate; apply-time re-check
  • T4 26dce8b6 heartbeat IsActive uses the shared predicate; Host wires one delegate everywhere
  • T5 3f937b39 chunk the resync snapshot to fit Akka remoting frames (additive byte-budgeted protocol)
  • T6 84bc2380 standby assembles chunked resync, applies atomically, acks; N5 race documented
  • T7 6e1ab62d resync ack confirmation + completed/ack-missing telemetry

Wave-1 remainder (T8–T15):

  • T8 61442b5f _sweepTask CAS-win publish (shutdown drain no longer clobbered) (N3)
  • T9 cc4ff702 eager-validate SweepBatchLimit/SweepTargetParallelism (N4)
  • T10 bb8be553 coalesce live-alarm publishes (N6)
  • T11 c29e5889 queued re-seed + stream-generation stamp (N7)
  • T12 b7f8632d ctor-inject reconnect/stability, remove process-global statics (N7)
  • T13 4e228110 RemoveSiteAsync production caller on site delete (N8)
  • T14 41ffe42d doc acceptance for standby/deleted-site aggregator (N8)
  • T15 c83b51fe single-endpoint sites can go live (N9)

Additive wire messages (SfBufferSnapshotChunk/SfBufferResyncAck, intra-site remoting; legacy SfBufferSnapshot retained for rolling compat). R2-01 and R2-07 stack on this branch (shared AkkaHostedService.cs/TwoNodeClusterFixture.cs/ManagementActor.cs/SiteAlarmLiveCacheService.cs).

Round-2 architecture-review fixes — **PLAN-R2-02 (Communication & Store-and-Forward)**, all 15 tasks incl. the round-2 **Critical (N1)**. Source: `archreview/02-communication-store-and-forward.md`. TDD throughout; per-task pathspec commits; full slnx **build 0/0**; targeted suites green (full-suite sweep at integration merge). **Critical N1 + High N2 spine (T1–T7):** - **T1** `91209070` shared oldest-Up `ActiveNodeEvaluator` in Communication; Host evaluator delegates - **T2** `6e0fa213` failing two-node repro — leader-vs-oldest resync divergence wipes delivering node buffer - **T3** `3a5b885a` resync authority uses the shared oldest-Up predicate + delivery-gate delegate; apply-time re-check - **T4** `26dce8b6` heartbeat IsActive uses the shared predicate; Host wires one delegate everywhere - **T5** `3f937b39` chunk the resync snapshot to fit Akka remoting frames (additive byte-budgeted protocol) - **T6** `84bc2380` standby assembles chunked resync, applies atomically, acks; N5 race documented - **T7** `6e1ab62d` resync ack confirmation + completed/ack-missing telemetry **Wave-1 remainder (T8–T15):** - **T8** `61442b5f` `_sweepTask` CAS-win publish (shutdown drain no longer clobbered) (N3) - **T9** `cc4ff702` eager-validate SweepBatchLimit/SweepTargetParallelism (N4) - **T10** `bb8be553` coalesce live-alarm publishes (N6) - **T11** `c29e5889` queued re-seed + stream-generation stamp (N7) - **T12** `b7f8632d` ctor-inject reconnect/stability, remove process-global statics (N7) - **T13** `4e228110` RemoveSiteAsync production caller on site delete (N8) - **T14** `41ffe42d` doc acceptance for standby/deleted-site aggregator (N8) - **T15** `c83b51fe` single-endpoint sites can go live (N9) Additive wire messages (`SfBufferSnapshotChunk`/`SfBufferResyncAck`, intra-site remoting; legacy `SfBufferSnapshot` retained for rolling compat). **R2-01 and R2-07 stack on this branch** (shared `AkkaHostedService.cs`/`TwoNodeClusterFixture.cs`/`ManagementActor.cs`/`SiteAlarmLiveCacheService.cs`).
dohertj2 added 15 commits 2026-07-13 10:28:56 -04:00
Author
Owner

Merged to main via the r2-integration fast-forward (main @ 1930f19b, pushed to origin). All commits from this branch are in main; the two integration-surfaced test fixes (IntegrationTests NodeName host-boot config, compile-cache assertion relax) landed on main as well. Closing — content fully integrated.

Merged to main via the r2-integration fast-forward (main @ 1930f19b, pushed to origin). All commits from this branch are in main; the two integration-surfaced test fixes (IntegrationTests NodeName host-boot config, compile-cache assertion relax) landed on main as well. Closing — content fully integrated.
dohertj2 closed this pull request 2026-07-13 11:48:37 -04:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/ScadaBridge#9