2026-03-08 11:22:05 -04:00
2025-11-08 13:29:03 -05:00
2025-11-08 13:29:03 -05:00
2025-11-07 12:02:33 -05:00
2021-02-01 23:55:58 -05:00
2026-03-05 05:59:26 -05:00

Svrnty.CQRS

Modern CQRS framework for .NET with gRPC source generation and HTTP Minimal API support.

Where This Fits

Layer: libs Depends on: Nothing (standalone .NET framework) Depended on by: a-gent-app (backend services), flutter-cqrs-datasource (client) Git: git.openharbor.io/svrnty/dotnet-cqrs.git

Tech Stack

  • Language: C# 14 / .NET 10
  • Framework: ASP.NET Core Minimal API, gRPC
  • Key Dependencies: FluentValidation 11.x, Grpc.AspNetCore, PoweredSoft.DynamicQuery

Quick Start

# Build
dotnet build

# Run
dotnet run --project Svrnty.Sample

# Test
dotnet test

Architecture

10 NuGet packages organized by concern:

  • Abstractions: Core interfaces (ICommandHandler, IQueryHandler)
  • Core: Discovery, registration, handler execution
  • MinimalApi: HTTP endpoint mapping with RFC 7807 validation
  • Grpc: gRPC service support with Google Rich Error Model
  • Grpc.Generators: Source generator for .proto files and service implementations
  • DynamicQuery: PoweredSoft integration for filtering, sorting, paging
  • FluentValidation: Validator registration helpers

Configuration

// Register handlers
builder.Services.AddCommand<CreateUserCommand, int, CreateUserCommandHandler>();
builder.Services.AddQuery<GetUserQuery, User, GetUserQueryHandler>();

// Configure CQRS with gRPC + HTTP
builder.Services.AddSvrntyCqrs(cqrs =>
{
    cqrs.AddGrpc(grpc => grpc.EnableReflection());
    cqrs.AddMinimalApi();
});

app.UseSvrntyCqrs();

Contributing

See CLAUDE.md for development guidelines.

License

MIT OR Apache-2.0

S
Description
No description provided
Readme 2.1 MiB
Languages
C# 100%