Table of Contents

Class InMemoryGuaranteedDeliveryStore<TPayload>

Namespace
PatternKit.Messaging.Reliability
Assembly
PatternKit.Core.dll

Thread-safe in-memory store for tests, demos, and single-process applications.

public sealed class InMemoryGuaranteedDeliveryStore<TPayload> : IGuaranteedDeliveryStore<TPayload>

Type Parameters

TPayload
Inheritance
InMemoryGuaranteedDeliveryStore<TPayload>
Implements
Inherited Members

Properties

Records

public IReadOnlyList<GuaranteedDeliveryRecord<TPayload>> Records { get; }

Property Value

IReadOnlyList<GuaranteedDeliveryRecord<TPayload>>

Methods

AcknowledgeAsync(string, CancellationToken)

public ValueTask AcknowledgeAsync(string id, CancellationToken cancellationToken = default)

Parameters

id string
cancellationToken CancellationToken

Returns

ValueTask

DeadLetterAsync(string, string?, CancellationToken)

public ValueTask DeadLetterAsync(string id, string? error = null, CancellationToken cancellationToken = default)

Parameters

id string
error string
cancellationToken CancellationToken

Returns

ValueTask

EnqueueAsync(Message<TPayload>, string?, DateTimeOffset?, CancellationToken)

public ValueTask<GuaranteedDeliveryRecord<TPayload>> EnqueueAsync(Message<TPayload> message, string? id = null, DateTimeOffset? enqueuedAt = null, CancellationToken cancellationToken = default)

Parameters

message Message<TPayload>
id string
enqueuedAt DateTimeOffset?
cancellationToken CancellationToken

Returns

ValueTask<GuaranteedDeliveryRecord<TPayload>>

ReleaseAsync(string, string?, CancellationToken)

public ValueTask ReleaseAsync(string id, string? error = null, CancellationToken cancellationToken = default)

Parameters

id string
error string
cancellationToken CancellationToken

Returns

ValueTask

SnapshotAsync(CancellationToken)

public ValueTask<IReadOnlyList<GuaranteedDeliveryRecord<TPayload>>> SnapshotAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

ValueTask<IReadOnlyList<GuaranteedDeliveryRecord<TPayload>>>

TryLeaseAsync(TimeSpan, int, DateTimeOffset, CancellationToken)

public ValueTask<GuaranteedDeliveryLease<TPayload>?> TryLeaseAsync(TimeSpan leaseDuration, int maxDeliveryAttempts, DateTimeOffset now, CancellationToken cancellationToken = default)

Parameters

leaseDuration TimeSpan
maxDeliveryAttempts int
now DateTimeOffset
cancellationToken CancellationToken

Returns

ValueTask<GuaranteedDeliveryLease<TPayload>>