perf(ui): shared KPI cache, live-cache-backed alarm summary, coalesced debug renders
This commit is contained in:
@@ -99,7 +99,17 @@ public static class ServiceCollectionExtensions
|
||||
// facade over CommunicationService.RequestDebugSnapshotAsync (the same
|
||||
// single-shot Ask the Debug View uses) — and flattens the alarm states.
|
||||
services.AddScoped<IInstanceSnapshotClient, CommunicationInstanceSnapshotClient>();
|
||||
services.AddScoped<IAlarmSummaryService, AlarmSummaryService>();
|
||||
// The fan-out itself stays scoped (it holds scoped repositories + the snapshot
|
||||
// client), but the page resolves it through SharedAlarmSummaryService — a process
|
||||
// singleton that memoizes the fan-out per site with single-flight, so N circuits
|
||||
// watching one site cost ONE fan-out per window instead of N (arch-review WP2.4).
|
||||
services.AddScoped<AlarmSummaryService>();
|
||||
services.AddSingleton<IAlarmSummaryService, SharedAlarmSummaryService>();
|
||||
|
||||
// Process-level memoized point-in-time KPI snapshots (arch-review WP2.4, finding
|
||||
// #8's per-circuit half). Singleton on purpose: the memo has to outlive any one
|
||||
// circuit for N dashboards to share a single SQL round per refresh window.
|
||||
services.AddSingleton<IKpiSnapshotCache, KpiSnapshotCache>();
|
||||
|
||||
// Secured Writes: dispatches the two-person secured-write commands
|
||||
// (submit / approve / reject / list) to the central ManagementActor through the
|
||||
|
||||
Reference in New Issue
Block a user