Innovabit.DotNet.Interceptors.Coordination.Memory
2.0.117
dotnet add package Innovabit.DotNet.Interceptors.Coordination.Memory --version 2.0.117
NuGet\Install-Package Innovabit.DotNet.Interceptors.Coordination.Memory -Version 2.0.117
<PackageReference Include="Innovabit.DotNet.Interceptors.Coordination.Memory" Version="2.0.117" />
<PackageVersion Include="Innovabit.DotNet.Interceptors.Coordination.Memory" Version="2.0.117" />
<PackageReference Include="Innovabit.DotNet.Interceptors.Coordination.Memory" />
paket add Innovabit.DotNet.Interceptors.Coordination.Memory --version 2.0.117
#r "nuget: Innovabit.DotNet.Interceptors.Coordination.Memory, 2.0.117"
#:package Innovabit.DotNet.Interceptors.Coordination.Memory@2.0.117
#addin nuget:?package=Innovabit.DotNet.Interceptors.Coordination.Memory&version=2.0.117
#tool nuget:?package=Innovabit.DotNet.Interceptors.Coordination.Memory&version=2.0.117
Innovabit.DotNet.Interceptors.Coordination.Memory
In-process stores for
Innovabit.DotNet.Interceptors.Coordination.Abstractions:
[Idempotent] and [DistributedLock] keep their state in this process.
Usage
services
.AddInterceptors()
.AddInMemoryCoordination(); // idempotency + locking + single flight
// …or one at a time:
services.AddInterceptors().AddInMemoryIdempotency();
services.AddInterceptors().AddInMemoryDistributedLocking();
Both stores are singletons: state that reset per request would coordinate nothing.
What to know
The idempotency store does not survive a restart and is not shared. A replay that reaches another instance — or the same one after a deploy — runs again. Right for a single-instance job, wrong for anything a client retries against a load balancer.
"Distributed" is a promise this lock store cannot keep. It excludes the threads of one process and nothing more. Right for a single-instance worker and for tests; use the Redis store for anything running in more than one copy.
Leases are honoured all the same, so a lock whose holder is stuck can still be taken over, and releasing compares the lock you took — a release arriving after your lease expired will not hand away the lock somebody else legitimately claimed.
Expired idempotency entries are dropped when they are next read rather than by a background sweeper: the only thing that cares is a lookup, and a timer would be one more thing to own and stop.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
-
net8.0
-
net9.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.117 | 0 | 10/31/2026 |
| 2.0.116 | 83 | 10/26/2026 |
| 2.0.115 | 95 | 10/17/2026 |
| 2.0.114 | 89 | 10/10/2026 |
| 2.0.113 | 104 | 10/3/2026 |
| 2.0.112 | 106 | 9/28/2026 |
| 2.0.111 | 95 | 9/28/2026 |
| 2.0.110 | 98 | 9/27/2026 |
| 2.0.109 | 96 | 9/26/2026 |
| 2.0.108 | 96 | 9/26/2026 |
| 2.0.107 | 100 | 9/26/2026 |
| 2.0.106 | 108 | 9/25/2026 |
| 2.0.105 | 103 | 9/25/2026 |
| 1.0.0.104 | 97 | 9/25/2026 |
| 1.0.0.103 | 89 | 9/25/2026 |