docs(archreview): record #11 CORRECTED (Crit-1 premise) + track residual #12/#13

- FOLLOWUP-11 → IMPLEMENTED with outcome (docs/comment-only, no code revert; the four
  corrected sites; Cluster.Tests 29/29).
- STATUS.md: task #11 → completed; crit1 branch head → eaf78aad; Completed-table row;
  Findings #11 bullet flipped to CORRECTED; added task rows #12 (live gate) + #13
  (ResilienceConfig-in-artifact).
This commit is contained in:
Joseph Doherty
2026-07-08 22:36:10 -04:00
parent 877cb9bc56
commit e233db7456
2 changed files with 38 additions and 10 deletions
@@ -1,9 +1,31 @@
# Follow-up #11 — Correct Critical 1's premise: SBR was already active on master (not NoDowning)
> **Status:** OPEN · **Surfaced by:** the #9 hard-kill failover test's negative control on
> `fix/archreview-crit1-split-brain-resolver` `a25c9ed0` · **Task:** TaskCreate #11 · **Severity:** Low
> **Status:** ✅ IMPLEMENTED (`fix/archreview-crit1-split-brain-resolver` `eaf78aad`) · **Surfaced by:** the #9
> hard-kill failover test's negative control on `a25c9ed0` · **Task:** TaskCreate #11 · **Severity:** Low
> (docs/rationale accuracy; the code change is harmless) · **Effort:** S. See [`STATUS.md`](STATUS.md).
## Outcome (implemented)
Docs/comment-only correction landed on the crit1 branch (`eaf78aad`) — **no code reverted** (the typed
`KeepOldestOption { DownIfAlone = true }` is correct belt-and-suspenders). Corrected the inaccurate
"HOCON inert / cluster runs NoDowning / never fails over" framing in all four places it appeared:
1. `ServiceCollectionExtensions.BuildClusterOptions` XML comment → now states Akka.Cluster.Hosting enables
an SBR provider by default (applies `SplitBrainResolverOption.Default` when the option is null, reading
the akka.conf `keep-oldest` block); the typed option makes the strategy **explicit in code**, reinforcing
not activating.
2. `akka.conf` `split-brain-resolver` comment → the block IS active (via the Hosting default); the typed
option makes it explicit; only an explicit `downing-provider-class = ""` would disable failover.
3. `docs/Redundancy.md` Split-brain section → rewrote the "activated in code / without it → NoDowning"
paragraph; dropped the "now triggers failover" wording; cross-referenced `HardKillFailoverTests` + its
negative control.
4. `SplitBrainResolverActivationTests` class summary + the `ShouldNotBeNull` message; renamed
`BuildClusterOptions_activates_a_split_brain_resolver``..._sets_an_explicit_split_brain_resolver`.
**Verification:** Cluster.Tests 29/29 green (the guards still assert the typed option is set — a refactor
can't silently drop the explicitness). Failover *behaviour* remains guarded by `HardKillFailoverTests`,
which passes regardless of activation path.
## The finding
Critical 1 (03/S1) claimed: *the akka.conf `split-brain-resolver` block was inert, the cluster ran Akka's