Table of Contents

Class InMemoryIdempotencyStoreWithTtl

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

Thread-safe in-memory idempotency store with optional per-key TTL and periodic eviction.

public sealed class InMemoryIdempotencyStoreWithTtl : IIdempotencyStoreWithTtl, IIdempotencyStore
Inheritance
InMemoryIdempotencyStoreWithTtl
Implements
Inherited Members

Properties

Count

The number of keys currently stored (including potentially expired ones).

public int Count { get; }

Property Value

int

Methods

EvictExpiredAsync(CancellationToken)

Evicts all keys whose TTL has elapsed.

public ValueTask<int> EvictExpiredAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

ValueTask<int>

MarkCompletedAsync(string, object?, CancellationToken)

Marks a claimed key as completed and stores an optional replayable result.

public ValueTask MarkCompletedAsync(string key, object? result = null, CancellationToken cancellationToken = default)

Parameters

key string
result object
cancellationToken CancellationToken

Returns

ValueTask

MarkFailedAsync(string, string?, CancellationToken)

Marks a claimed key as failed with an optional reason.

public ValueTask MarkFailedAsync(string key, string? reason = null, CancellationToken cancellationToken = default)

Parameters

key string
reason string
cancellationToken CancellationToken

Returns

ValueTask

TryClaimAsync(string, TimeSpan?, CancellationToken)

Attempts to claim key for processing with an optional time-to-live. Keys expire after ttl elapses from their creation time.

public ValueTask<IdempotencyClaim> TryClaimAsync(string key, TimeSpan? ttl, CancellationToken cancellationToken = default)

Parameters

key string
ttl TimeSpan?
cancellationToken CancellationToken

Returns

ValueTask<IdempotencyClaim>

TryClaimAsync(string, CancellationToken)

Attempts to claim key for processing.

public ValueTask<IdempotencyClaim> TryClaimAsync(string key, CancellationToken cancellationToken = default)

Parameters

key string
cancellationToken CancellationToken

Returns

ValueTask<IdempotencyClaim>