Table of Contents

Class AuditService

Namespace
JD.AI.Core.Governance.Audit
Assembly
JD.AI.Core.dll

Dispatches AuditEvent instances to all registered IAuditSink implementations. A failure in one sink never propagates to callers; failed events are sent to a dead-letter queue for later inspection.

public sealed class AuditService
Inheritance
AuditService
Inherited Members

Constructors

AuditService(IEnumerable<IAuditSink>, ILogger<AuditService>?, TenantContext?)

public AuditService(IEnumerable<IAuditSink> sinks, ILogger<AuditService>? logger = null, TenantContext? tenantContext = null)

Parameters

sinks IEnumerable<IAuditSink>
logger ILogger<AuditService>
tenantContext TenantContext

Properties

DeadLetterCount

Number of events that failed to write to at least one sink.

public long DeadLetterCount { get; }

Property Value

long

Methods

DrainDeadLetters()

Reads all dead-letter entries currently in the queue.

public IReadOnlyList<DeadLetterEntry> DrainDeadLetters()

Returns

IReadOnlyList<DeadLetterEntry>

EmitAsync(AuditEvent, CancellationToken)

Emits an audit event to all configured sinks. Exceptions from individual sinks are caught and logged; failed events are sent to the dead-letter queue.

public Task EmitAsync(AuditEvent evt, CancellationToken ct = default)

Parameters

evt AuditEvent
ct CancellationToken

Returns

Task

FlushAsync(CancellationToken)

Flushes all sinks. Sink flush failures are logged but not propagated.

public Task FlushAsync(CancellationToken ct = default)

Parameters

ct CancellationToken

Returns

Task