Allegro.CosmosDb.ConsistencyLevelUtilities
1.0.0
Prefix Reserved
dotnet add package Allegro.CosmosDb.ConsistencyLevelUtilities --version 1.0.0
NuGet\Install-Package Allegro.CosmosDb.ConsistencyLevelUtilities -Version 1.0.0
<PackageReference Include="Allegro.CosmosDb.ConsistencyLevelUtilities" Version="1.0.0" />
paket add Allegro.CosmosDb.ConsistencyLevelUtilities --version 1.0.0
#r "nuget: Allegro.CosmosDb.ConsistencyLevelUtilities, 1.0.0"
// Install Allegro.CosmosDb.ConsistencyLevelUtilities as a Cake Addin #addin nuget:?package=Allegro.CosmosDb.ConsistencyLevelUtilities&version=1.0.0 // Install Allegro.CosmosDb.ConsistencyLevelUtilities as a Cake Tool #tool nuget:?package=Allegro.CosmosDb.ConsistencyLevelUtilities&version=1.0.0
Allegro.CosmosDb.ConsistencyLevelUtilities
This library contains utilities helpful in handling CosmosDb Consistency Levels.
CustomConsistencyLevelReadAttribute
CosmosDb database has always some consistency level set (by default it's the Session Level - see more details
here). This attribute should be used alongside
ContainerExtensions.ReadItemWithCustomConsistencyAsync
method to mark entities that can use a relaxed consistency
settings to optimize RU cost or read latency.
To prevent cold start issues, please invoke ContainerExtensions.WarmUp()
method in your program's entrypoint.\
Example
Usage example can be found in the Allegro.CosmosDb.Demo
project.
Entity definition:
[CustomConsistencyLevelRead(ConsistencyLevel.Eventual)]
public class CosmosDocument
{
// some properties
}
Reading the entity with lowered consistency:
using Allegro.CosmosDb.ConsistencyLevelUtilities;
// ...
var item = await container.ReadItemWithCustomConsistencyAsync<CosmosDocument>(
documentId,
new PartitionKey(documentId),
cancellationToken: HttpContext.RequestAborted);
}
More info
More information about overriding database's consistency levels can be found here.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
-
net5.0
- Asyncify (>= 0.9.7)
- Microsoft.Azure.Cosmos (>= 3.22.0)
- Microsoft.Extensions.Configuration.Binder (>= 5.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 5.0.0)
-
net6.0
- Asyncify (>= 0.9.7)
- Microsoft.Azure.Cosmos (>= 3.22.0)
- Microsoft.Extensions.Configuration.Binder (>= 5.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 5.0.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 |
---|---|---|
1.0.0 | 277 | 3/4/2022 |