# 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 ```bash # 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 ```csharp // Register handlers builder.Services.AddCommand(); builder.Services.AddQuery(); // Configure CQRS with gRPC + HTTP builder.Services.AddSvrntyCqrs(cqrs => { cqrs.AddGrpc(grpc => grpc.EnableReflection()); cqrs.AddMinimalApi(); }); app.UseSvrntyCqrs(); ``` ## Contributing See [CLAUDE.md](./CLAUDE.md) for development guidelines. ## License MIT OR Apache-2.0