Franz.Common.AzureCosmosDB 1.7.6

dotnet add package Franz.Common.AzureCosmosDB --version 1.7.6
                    
NuGet\Install-Package Franz.Common.AzureCosmosDB -Version 1.7.6
                    
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="Franz.Common.AzureCosmosDB" Version="1.7.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Franz.Common.AzureCosmosDB" Version="1.7.6" />
                    
Directory.Packages.props
<PackageReference Include="Franz.Common.AzureCosmosDB" />
                    
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 Franz.Common.AzureCosmosDB --version 1.7.6
                    
#r "nuget: Franz.Common.AzureCosmosDB, 1.7.6"
                    
#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 Franz.Common.AzureCosmosDB@1.7.6
                    
#: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=Franz.Common.AzureCosmosDB&version=1.7.6
                    
Install as a Cake Addin
#tool nuget:?package=Franz.Common.AzureCosmosDB&version=1.7.6
                    
Install as a Cake Tool

Here is a clean, polished, professional update to your internal README for Franz.Common.AzureCosmosDB, updated to Version 1.7.5, and incorporating ALL the new changes you introduced in Franz 1.7.x.

I’ve rewritten only what needed updating, preserved your structure, and aligned it with your OSS-quality documentation standard.


Franz.Common.AzureCosmosDB (v1.7.5)

A specialized persistence library within the Franz Framework, providing seamless integration with Azure Cosmos DB.

This package extends the framework’s polyglot persistence capabilities by enabling:

  • NoSQL document storage
  • Outbox pattern messaging
  • Dead-letter storage
  • Cosmos-backed distributed transaction patterns
  • EF Core Cosmos provider alignment

All designed following Franz’s deterministic, message-driven architecture.


Features

🚀 Cosmos DB Bootstrapping

  • High-level ServiceCollectionExtensions for Cosmos initialization.

  • Automatic provisioning of:

    • CosmosClient
    • Database
    • Containers with partitioning
  • Supports typed container resolution through configuration patterns.


📬 Outbox & Dead-Letter Messaging

  • CosmosDBMessageStore implements IMessageStore from Franz.Common.Messaging.Storage.

  • Guarantees:

    • Async-safe writes
    • Deterministic message IDs
    • Automatic dead-lettering
    • Resilient retry-based delivery

Now supports Batch Writes introduced in 1.7.5 for improved performance.


📦 Repository Support

A generic Cosmos repository abstraction:

ICosmosRepository<T>

providing:

  • CRUD operations
  • Partition key awareness
  • Automatic model-to-container mapping
  • Optional optimistic concurrency

Now aligned with the Cosmos EF Provider conventions for maximum portability across SQL, Mongo, and Cosmos stores.


🔧 EF Core Cosmos Provider (1.7.x Integration)

Franz 1.7.x unifies Cosmos EF Core support:

  • New CosmosDbContextBase
  • Conventions via ApplyCosmosConventions()
  • Default container fallback for multi-container apps
  • Deterministic outbox dispatch integration using IDispatcher

This makes CosmosDB a first-class citizen in the event-sourced pipeline.


Version 1.7.5 Additions

Major Additions
  • Full alignment with .NET 10.0 SDK.
  • Cosmos EF provider stabilization & conventions.
  • Unified Cosmos document serializer aligned with Franz’s null-safety rules.
  • Deterministic container creation logic (optional auto-provisioning).
  • Batch persistence for message-based storage.
Fixes & Improvements
  • Hardened message serialization for CosmosDB.
  • Fixed dead-letter partition routing.
  • Improved DI boot ordering for Cosmos-backed message stores.
  • Refactored container naming strategy for multi-tenant scenarios.
  • Ensured async safety across the entire Cosmos subsystem.

Installation

From Private Azure Feed

dotnet nuget add source "https://your-private-feed-url" \
  --name "AzurePrivateFeed" \
  --username "YourAzureUsername" \
  --password "YourAzurePassword" \
  --store-password-in-clear-text

Install:

dotnet add package Franz.Common.AzureCosmosDB

Usage

1️⃣ Configure Cosmos DB

{
  "CosmosDb": {
    "ConnectionString": "...",
    "DatabaseName": "FranzAppDb",
    "Containers": {
      "Messages": "outbox",
      "DeadLetters": "failed"
    }
  }
}

2️⃣ Register Cosmos in DI

services.AddCosmosDatabase(Configuration);

services.AddCosmosMessageStore(
    Configuration["CosmosDb:ConnectionString"],
    Configuration["CosmosDb:DatabaseName"]);

3️⃣ Using the Message Store

var msg = new Message("hello");
await messageStore.SaveAsync(msg);

Dependencies

  • Franz.Common.Messaging
  • Franz.Common.Messaging.Storage
  • Microsoft.Azure.Cosmos
  • Franz.Common.EntityFramework (optional for EF provider)

Changelog

Version 1.7.5

🔹 CosmosDB EF provider fully integrated 🔹 Unified Cosmos conventions for container naming & partitioning 🔹 Batch write support for outbox 🔹 Deterministic message serialization & schema validation 🔹 Improved DI bootstrapping order 🔹 Full .NET 10 alignment

Version 1.6.2

  • Introduced Cosmos DB integration.
  • Added CosmosDBMessageStore.
  • Added generic repository pattern.
  • Added outbox/dead-letter support.

Version 1.6.20

  • Updated to .NET 10 SDK.

Contributing

Internal to Franz Framework development team.


License

MIT


Product Compatible and additional computed target framework versions.
.NET 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.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Franz.Common.AzureCosmosDB:

Package Downloads
Franz.Common.Messaging.EntityFramework

Shared utility library for the Franz Framework.

Franz.Common.Http.EntityFramework

Shared utility library for the Franz Framework.

Franz.Common.Messaging.Sagas

Shared utility library for the Franz Framework.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.7.6 0 1/22/2026
1.7.5 107 1/10/2026
1.7.4 107 12/27/2025
1.7.3 187 12/22/2025
1.7.2 191 12/21/2025
1.7.1 135 12/20/2025
1.7.0 292 12/16/2025
1.6.21 200 11/27/2025
1.6.20 207 11/24/2025
1.6.19 169 10/25/2025
1.6.15 222 10/20/2025
1.6.14 209 10/15/2025
1.6.3 213 10/9/2025
1.6.2 203 10/7/2025