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
Methods
EvictExpiredAsync(CancellationToken)
Evicts all keys whose TTL has elapsed.
public ValueTask<int> EvictExpiredAsync(CancellationToken cancellationToken = default)
Parameters
cancellationTokenCancellationToken
Returns
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
keystringresultobjectcancellationTokenCancellationToken
Returns
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
keystringreasonstringcancellationTokenCancellationToken
Returns
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
keystringttlTimeSpan?cancellationTokenCancellationToken
Returns
TryClaimAsync(string, CancellationToken)
Attempts to claim key for processing.
public ValueTask<IdempotencyClaim> TryClaimAsync(string key, CancellationToken cancellationToken = default)
Parameters
keystringcancellationTokenCancellationToken