Skip to content

IEventOutbox Interface

Where minted SETs wait for delivery, one queue per stream - and a stream is the PAIR of a receiver and an identifier, the same key IStreamStore uses. Keying on the identifier alone is not a shortcut but a different model: two receivers naming their streams alike then share one queue, each is handed the other's SETs, and whichever acknowledges first destroys events the other never saw. The queue IS the holding the status rules speak of: a paused stream's events stay here because nothing drains them (SSF 1.0 Section 8.1.2.1), a poll delivery reads and re-reads here until acknowledged (RFC 8936 Section 2.4), and a push delivery removes an item only once the receiver's 202 earned it. Order is enqueue order, which is what keeps same-principal events in generation order across a pause.

C#
public interface IEventOutbox

Derived
DistributedCacheEventOutbox
InMemoryEventOutbox

Methods

IEventOutbox.AcknowledgeAsync(string, string, IReadOnlyCollection<string>, CancellationToken) Method

Removes acknowledged SETs from a stream's queue, releasing the transmitter from retaining them (RFC 8936 Section 2.2). Identifiers with nothing to match are ignored - an acknowledgement can only arrive for something that was once here.

C#
System.Threading.Tasks.Task AcknowledgeAsync(string receiverId, string streamId, System.Collections.Generic.IReadOnlyCollection<string> jwtIds, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters

receiverId System.String

The receiver the stream belongs to.

streamId System.String

The stream whose queue is acknowledged.

jwtIds System.Collections.Generic.IReadOnlyCollection<System.String>

The "jti" values being acknowledged.

cancellationToken System.Threading.CancellationToken

Cancels I/O a durable implementation performs.

Returns

System.Threading.Tasks.Task

IEventOutbox.ClearAsync(string, string, CancellationToken) Method

Drops a stream's whole queue - the companion of deleting or disabling the stream, whose events are not held for later (SSF 1.0 Sections 8.1.1.5, 8.1.2.1).

C#
System.Threading.Tasks.Task ClearAsync(string receiverId, string streamId, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters

receiverId System.String

The receiver the stream belongs to.

streamId System.String

The stream whose queue is dropped.

cancellationToken System.Threading.CancellationToken

Cancels I/O a durable implementation performs.

Returns

System.Threading.Tasks.Task

IEventOutbox.EnqueueAsync(string, string, OutboxItem, CancellationToken) Method

Appends a SET to a stream's queue.

C#
System.Threading.Tasks.Task EnqueueAsync(string receiverId, string streamId, Abblix.SharedSignals.Transmitter.OutboxItem item, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters

receiverId System.String

The receiver the stream belongs to.

streamId System.String

The stream the SET was minted for.

item OutboxItem

The minted SET.

cancellationToken System.Threading.CancellationToken

Cancels I/O a durable implementation performs.

Returns

System.Threading.Tasks.Task

IEventOutbox.PendingAsync(string, string, Nullable<int>, CancellationToken) Method

Reads the unacknowledged head of a stream's queue, oldest first, without removing anything - redelivery of the unacknowledged is the delivery protocols' own semantics.

C#
System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyList<Abblix.SharedSignals.Transmitter.OutboxItem>> PendingAsync(string receiverId, string streamId, System.Nullable<int> maxCount=null, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));

Parameters

receiverId System.String

The receiver the stream belongs to.

streamId System.String

The stream whose queue is read.

maxCount System.Nullable<System.Int32>

The most items to return; null returns everything pending, mirroring an absent "maxEvents" (RFC 8936 Section 2.2).

cancellationToken System.Threading.CancellationToken

Cancels I/O a durable implementation performs.

Returns

System.Threading.Tasks.Task<System.Collections.Generic.IReadOnlyList<OutboxItem>>