IronAlpine.Locking.Abstractions
1.1.0
dotnet add package IronAlpine.Locking.Abstractions --version 1.1.0
NuGet\Install-Package IronAlpine.Locking.Abstractions -Version 1.1.0
<PackageReference Include="IronAlpine.Locking.Abstractions" Version="1.1.0" />
<PackageVersion Include="IronAlpine.Locking.Abstractions" Version="1.1.0" />
<PackageReference Include="IronAlpine.Locking.Abstractions" />
paket add IronAlpine.Locking.Abstractions --version 1.1.0
#r "nuget: IronAlpine.Locking.Abstractions, 1.1.0"
#:package IronAlpine.Locking.Abstractions@1.1.0
#addin nuget:?package=IronAlpine.Locking.Abstractions&version=1.1.0
#tool nuget:?package=IronAlpine.Locking.Abstractions&version=1.1.0
IronAlpine.Locking.Abstractions
IronAlpine.Locking.Abstractions defines the distributed-lock contracts used across the IronAlpine ecosystem.
Why
Use this package when a component must coordinate work across multiple nodes or hosted workers. Typical examples include inbox/outbox claim execution, cache stampede protection, and long-running scheduled jobs.
What it contains
IDistributedLockIDistributedLockHandle- lock acquisition contracts and cancellation-aware APIs
When to use it
- Messaging claim executors
- Cache orchestration that must serialize recomputation
- Hosted services that must ensure single ownership
Configuration
This package contains contracts only. Concrete configuration lives in the implementation package that provides the lock backend.
Best Practices
- Keep lock scope small and resource-oriented.
- Use deterministic resource names.
- Do not use locks as a substitute for idempotency.
- Treat lock acquisition failures as expected outcomes, not exceptional control flow.
Cross-Package Notes
IronAlpine.Messaging.InboxOutbox.*uses distributed locking for safe message claiming.- Redis-backed implementations can be provided by a caching or infrastructure package, but the abstraction remains separate because messaging also depends on it.
Troubleshooting
A package asks for IDistributedLock
Register a concrete implementation in the host application.
Lock acquisition causes throughput drops
Review lock granularity. Use entity-level or message-level resource names instead of broad global keys.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (3)
Showing the top 3 NuGet packages that depend on IronAlpine.Locking.Abstractions:
| Package | Downloads |
|---|---|
|
IronAlpine.Messaging.InboxOutbox.EFCore
EF Core inbox-outbox implementation for integration events with claim-based processing, retries, database dead-letter persistence, and hosted worker services. |
|
|
IronAlpine.Messaging.InboxOutbox.Dapper
Dapper inbox-outbox implementation for integration events with claim-based processing, retries, database dead-letter persistence, and hosted worker services. |
|
|
IronAlpine.Caching
Caching contracts, settings APIs, and mediator pipeline behavior for IronAlpine applications with graceful local fallback when distributed lock providers are unavailable. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0 | 0 | 3/12/2026 |
Stable mediator release with request/response, notification publish strategies, streaming, and dependency injection integration.