24 lines
1.1 KiB
C#
24 lines
1.1 KiB
C#
namespace ScadaLink.AuditLog.Central;
|
|
|
|
/// <summary>
|
|
/// Audit Log (#23) M6 Bundle E (T8) counter sink invoked by central-side audit
|
|
/// writers (<see cref="CentralAuditWriter"/>, <see cref="AuditLogIngestActor"/>)
|
|
/// every time a repository <c>InsertIfNotExistsAsync</c> throws. Mirrors the
|
|
/// site-side <see cref="ScadaLink.AuditLog.Site.IAuditWriteFailureCounter"/>
|
|
/// shape one-for-one — same one-method contract, same NoOp default, same
|
|
/// must-never-abort-the-user-facing-action invariant.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Audit-write failures NEVER abort the user-facing action (alog.md §13) —
|
|
/// the writer swallows the exception and surfaces the failure via this counter
|
|
/// instead. A NoOp default is the correct safe fallback while the central
|
|
/// health surface is being wired in; <see cref="AuditCentralHealthSnapshot"/>
|
|
/// is the production binding that routes increments into the aggregated
|
|
/// central health snapshot consumed by future M7+ pages.
|
|
/// </remarks>
|
|
public interface ICentralAuditWriteFailureCounter
|
|
{
|
|
/// <summary>Increment the central audit-write failure counter by one.</summary>
|
|
void Increment();
|
|
}
|