Qanat 0.9.0

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Qanat --version 0.9.0
                    
NuGet\Install-Package Qanat -Version 0.9.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="Qanat" Version="0.9.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Qanat" Version="0.9.0" />
                    
Directory.Packages.props
<PackageReference Include="Qanat" />
                    
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 Qanat --version 0.9.0
                    
#r "nuget: Qanat, 0.9.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 Qanat@0.9.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=Qanat&version=0.9.0
                    
Install as a Cake Addin
#tool nuget:?package=Qanat&version=0.9.0
                    
Install as a Cake Tool

Qanat

A comprehensive event sourcing and CQRS framework for .NET with PostgreSQL persistence, Kafka integration, and advanced projection capabilities.

Features

  • Event Sourcing - Full event sourcing support with aggregate roots and event streams
  • CQRS - Command Query Responsibility Segregation with projections and read models
  • PostgreSQL Persistence - Optimized PostgreSQL storage with partitioning support
  • Kafka Integration - Built-in Kafka producer/consumer with CloudEvents format
  • Flexible Repository Pattern - Supports state-based, event-sourced, projection, and hybrid aggregates
  • Transactional Outbox - Guaranteed event delivery with outbox pattern
  • Projections - Automatic projection building and seeding from event streams
  • Domain Events - Rich domain event processing pipeline
  • Integration Events - Cross-service communication with inbox/outbox patterns

Installation

dotnet add package Qanat

Quick Start

1. Define Your Aggregate

public class Organization : AggregateBase<OrganizationId>
{
    public string Name { get; private set; }

    public Organization(OrganizationId id, string name) : base(id)
    {
        Name = name;
        RaiseDomainEvent(new OrganizationCreated(id, name));
    }
}

2. Configure Services

services.AddQanat<AppDbContext>(configuration);
services.AddRepositories<AppDbContext>(typeof(Program).Assembly);

3. Use Repository

public class CreateOrganizationHandler
{
    private readonly IAggregateRepository<Organization, OrganizationId> _repository;

    public async Task HandleAsync(CreateOrganization command)
    {
        var org = new Organization(command.Id, command.Name);
        await _repository.AddAsync(org);
    }
}

Optional Packages

  • Qanat.GridifyExtensions - Advanced filtering and sorting with Gridify
  • Qanat.Administration - Operational dashboard and monitoring API

Configuration

Configure Qanat in your appsettings.json:

{
  "Qanat": {
    "DomainEvents": {
      "Enabled": true,
      "ProcessingInterval": "00:00:01"
    },
    "Kafka": {
      "BootstrapServers": "localhost:9092",
      "Producers": {
        "Default": {
          "Acks": "All",
          "EnableIdempotence": true
        }
      }
    }
  }
}

Documentation

For full documentation, visit: https://qanats.io/docs

License

This is commercial software. See LICENSE.txt for licensing terms.

For licensing inquiries, please contact: [YOUR EMAIL]

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 (2)

Showing the top 2 NuGet packages that depend on Qanat:

Package Downloads
Qanat.Administration

Operational dashboard and monitoring API for Qanat framework, providing real-time visibility into aggregates, projections, and integration events.

Qanat.GridifyExtensions

Gridify integration for Qanat framework, enabling advanced filtering, sorting, and querying capabilities.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-beta.260122 80 1/22/2026
0.9.0 154 2/2/2026