fix(sitecallaudit): correct stale relay docs and clarify ack switch
This commit is contained in:
@@ -415,9 +415,11 @@ akka {{
|
||||
// and NotificationOutbox patterns. M3's dual-write transaction routes
|
||||
// SiteCalls upserts through AuditLogIngestActor's own scope-per-message
|
||||
// ISiteCallAuditRepository resolution, so this singleton is not on the
|
||||
// M3 happy-path hot path; it exists so future direct-write callers
|
||||
// (reconciliation puller, central→site Retry/Discard relay, KPI
|
||||
// projector) Ask through a stable cluster proxy without further wiring.
|
||||
// M3 happy-path hot path; it exists so direct-write callers Ask through
|
||||
// a stable cluster proxy without further wiring. The central→site
|
||||
// Retry/Discard relay now lives in this actor (see the
|
||||
// RegisterCentralCommunication wiring below); the reconciliation puller
|
||||
// is the remaining deferred direct-write caller.
|
||||
// Like AuditLogIngestActor, the actor takes the root IServiceProvider
|
||||
// and creates a fresh scope per message because ISiteCallAuditRepository
|
||||
// is a scoped EF Core service.
|
||||
|
||||
@@ -23,9 +23,10 @@ namespace ScadaLink.SiteCallAudit;
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// <para>
|
||||
/// Query, detail and KPIs land in Task 4; reconciliation and the central→site
|
||||
/// Retry/Discard relay remain deferred (per CLAUDE.md scope discipline — they
|
||||
/// land in a later follow-up).
|
||||
/// Query, detail and KPIs (Task 4) and the central→site Retry/Discard relay
|
||||
/// (Task 5 — the relay handlers live in this actor) are implemented; only
|
||||
/// reconciliation remains deferred (per CLAUDE.md scope discipline — it lands
|
||||
/// in a later follow-up).
|
||||
/// </para>
|
||||
/// <para>
|
||||
/// Per CLAUDE.md "audit-write failure NEVER aborts the user-facing action" —
|
||||
@@ -550,7 +551,12 @@ public class SiteCallAuditActor : ReceiveActor
|
||||
SiteCallRelayOutcome.NotParked =>
|
||||
"The operation is no longer parked at the site (already delivered, discarded, or retrying).",
|
||||
SiteCallRelayOutcome.OperationFailed => ack.ErrorMessage,
|
||||
_ => ack.ErrorMessage,
|
||||
// SiteUnreachable is never produced from a ParkedOperationActionAck —
|
||||
// unreachable responses are built by UnreachableRetry/UnreachableDiscard
|
||||
// before any ack is classified, so this arm is unreachable by construction.
|
||||
SiteCallRelayOutcome.SiteUnreachable => ack.ErrorMessage,
|
||||
_ => throw new ArgumentOutOfRangeException(
|
||||
nameof(outcome), outcome, "unknown SiteCallRelayOutcome"),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user