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.
public interface IEventOutboxDerived
↳ 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.
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
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).
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
IEventOutbox.EnqueueAsync(string, string, OutboxItem, CancellationToken) Method
Appends a SET to a stream's queue.
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
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.
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>>