Skip to content

ISecurityEventSink Interface

Where validated events land: the application's half of a receiver, called once per accepted SET with the token already carrying its issuer's authority.

C#
public interface ISecurityEventSink

Remarks

Processing must be idempotent: RFC 8935 Section 2 lets a transmitter deliver the same SET again regardless of earlier responses, and the replay cache in front of this sink is probabilistic, so a repeat can reach it. It must also tolerate events about subjects the receiver has removed from the stream - a transmitter may keep sending them, and treating that as an error would let anyone able to remove a subject break the receiver (SSF 1.0 Section 9.3).

The verdict is the sink's to give: null acknowledges the event, a DeliveryError travels back in the 400 response - the one the framework itself defines being InvalidState, for a verification event whose "state" does not match what this receiver sent (SSF 1.0 Section 8.1.4.1).

Methods

ISecurityEventSink.ConsumeAsync(ValidatedSecurityEventToken, CancellationToken) Method

Consumes one validated SET.

C#
System.Threading.Tasks.Task<Abblix.SecurityEvents.Delivery.DeliveryError?> ConsumeAsync(Abblix.SecurityEvents.Validation.ValidatedSecurityEventToken token, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters

token ValidatedSecurityEventToken

The validated token with its typed event payloads.

cancellationToken System.Threading.CancellationToken

Cancels the processing.

Returns

System.Threading.Tasks.Task<DeliveryError>
Null to acknowledge the event, or the error the delivery response carries.