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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IronAlpine.Locking.Abstractions" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="IronAlpine.Locking.Abstractions" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="IronAlpine.Locking.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add IronAlpine.Locking.Abstractions --version 1.1.0
                    
#r "nuget: IronAlpine.Locking.Abstractions, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package IronAlpine.Locking.Abstractions@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=IronAlpine.Locking.Abstractions&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=IronAlpine.Locking.Abstractions&version=1.1.0
                    
Install as a Cake Tool

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

  • IDistributedLock
  • IDistributedLockHandle
  • 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.