S16 - some transactional hardening
All checks were successful
Build, test and publish / verify (push) Successful in 7m32s

This commit is contained in:
2026-11-04 21:54:20 +01:00
parent 694bf3fa86
commit 2d8822c1a4
5 changed files with 130 additions and 5 deletions

View File

@@ -154,3 +154,27 @@ Retained review signals in changed code:
One active backend remains the supported deployment model. Global execution
capacity, distributed workers, database backup/restore and recovery after database
volume loss remain outside S16. S17 owns backup/restore.
## Review follow-up: database recovery during calculation
Terminal scheduling outcomes whose transaction fails remain pending in their worker.
The worker retries storage once per second without holding the school monitor between
attempts, retaining its run guard until the terminal status commits. Publication still
happens only after commit. Shutdown interrupts the wait; startup recovery remains
responsible for persisted Running statuses after a process restart. If the show was
removed during the outage, the pending outcome is discarded rather than recreating
its status. The finish method's cognitive complexity 12 and cyclomatic complexity 8 distinguish
retryable storage failures, removed shows and shutdown; these lifecycle decisions
stay in the run owner. SchedulingRuns fan-out is now 34 and its test fixture fan-out
35: the added storage exception, interruption handling and outage fixture belong to
this existing persistence lifecycle boundary.
The regression test simulates unavailable storage during result persistence, verifies
that no terminal status is published prematurely and duplicate starts remain rejected,
then restores storage without restarting the backend and checks the stable run ID,
persisted failure status and released guard. Public transaction/callback documentation
now specifies transaction ownership, callback timing and exception behavior.
Follow-up verification: clean Maven verify against PostgreSQL passes all 73 backend
tests and 19 standards-checker tests. Standards and the coverage gate pass;
backend line coverage is 1769/1841 (96.09%).

View File

@@ -1,6 +1,6 @@
# S16 — Store state in persistent storage
Status: IN_REVIEW
Status: IMPLEMENTED
Agreed after the grill-me interview; shared understanding confirmed.