12 KiB
Package Index
Complete reference for all 18 NuGet packages in the Svrnty.CQRS framework.
Overview
| # | Package | Path | NuGet Package |
|---|---|---|---|
| 1 | Svrnty.CQRS.Abstractions | Svrnty.CQRS.Abstractions/ |
Yes |
| 2 | Svrnty.CQRS | Svrnty.CQRS/ |
Yes |
| 3 | Svrnty.CQRS.MinimalApi | Svrnty.CQRS.MinimalApi/ |
Yes |
| 4 | Svrnty.CQRS.Grpc | Svrnty.CQRS.Grpc/ |
Yes |
| 5 | Svrnty.CQRS.Grpc.Abstractions | Svrnty.CQRS.Grpc.Abstractions/ |
Yes |
| 6 | Svrnty.CQRS.Grpc.Generators | Svrnty.CQRS.Grpc.Generators/ |
Yes |
| 7 | Svrnty.CQRS.FluentValidation | Svrnty.CQRS.FluentValidation/ |
Yes |
| 8 | Svrnty.CQRS.DynamicQuery.Abstractions | Svrnty.CQRS.DynamicQuery.Abstractions/ |
Yes |
| 9 | Svrnty.CQRS.DynamicQuery | Svrnty.CQRS.DynamicQuery/ |
Yes |
| 10 | Svrnty.CQRS.DynamicQuery.MinimalApi | Svrnty.CQRS.DynamicQuery.MinimalApi/ |
Yes |
| 11 | Svrnty.CQRS.DynamicQuery.EntityFramework | Svrnty.CQRS.DynamicQuery.EntityFramework/ |
Yes |
| 12 | Svrnty.CQRS.Events.Abstractions | Svrnty.CQRS.Events.Abstractions/ |
Yes |
| 13 | Svrnty.CQRS.Events.RabbitMQ | Svrnty.CQRS.Events.RabbitMQ/ |
Yes |
| 14 | Svrnty.CQRS.Sagas.Abstractions | Svrnty.CQRS.Sagas.Abstractions/ |
Yes |
| 15 | Svrnty.CQRS.Sagas | Svrnty.CQRS.Sagas/ |
Yes |
| 16 | Svrnty.CQRS.Sagas.RabbitMQ | Svrnty.CQRS.Sagas.RabbitMQ/ |
Yes |
| 17 | Svrnty.CQRS.Notifications.Abstractions | Svrnty.CQRS.Notifications.Abstractions/ |
Yes |
| 18 | Svrnty.CQRS.Notifications.Grpc | Svrnty.CQRS.Notifications.Grpc/ |
Yes |
Package Details
1. Svrnty.CQRS.Abstractions
Purpose: Core interfaces that define the CQRS contract. This is the only package your domain/application layer needs to reference.
Target: net10.0 | AOT: Yes
Key Types:
ICommandHandler<TCommand>-- Handler for commands with no return valueICommandHandler<TCommand, TResult>-- Handler for commands returning a resultIQueryHandler<TQuery, TResult>-- Handler for queriesICommandMeta/IQueryMeta-- Discovery metadataICommandDiscovery/IQueryDiscovery-- Service discovery interfacesICommandAuthorizationService<TCommand>-- Per-command authorizationIQueryAuthorizationService<TQuery>-- Per-query authorizationCommandNameAttribute/QueryNameAttribute-- Custom namingIgnoreCommandAttribute/IgnoreQueryAttribute-- Exclude from auto-discovery
Internal Dependencies: None
2. Svrnty.CQRS
Purpose: Core registration and discovery engine. Provides the AddSvrntyCqrs() fluent API and auto-discovers registered handlers.
Target: net10.0 | AOT: Yes
Key Types:
CqrsBuilder-- Fluent builder for configuring transports and featuresCqrsConfiguration-- Configuration stateServiceCollectionExtensions.AddSvrntyCqrs()-- Entry pointServiceCollectionExtensions.AddCommand<T, TResult, THandler>()-- Register a command handlerServiceCollectionExtensions.AddQuery<T, TResult, THandler>()-- Register a query handlerCommandDiscovery/QueryDiscovery-- Default discovery implementations
Internal Dependencies: Svrnty.CQRS.Abstractions
3. Svrnty.CQRS.MinimalApi
Purpose: Maps registered commands and queries to ASP.NET Core Minimal API HTTP endpoints. Includes RFC 7807 Problem Details for validation errors.
Target: net10.0 | AOT: No
Key Types:
CqrsBuilderExtensions.AddMinimalApi()-- Enable HTTP endpointsMinimalApiCqrsOptions-- Configuration (route prefixes, etc.)ValidationFilter-- Endpoint filter for FluentValidationWebApplicationExtensions.UseSvrntyCqrs()-- Map endpoints at startupEndpointRouteBuilderExtensions-- Route mapping helpers
Internal Dependencies: Svrnty.CQRS.Abstractions, Svrnty.CQRS
External Dependencies: FluentValidation 11.x, Microsoft.AspNetCore.App
4. Svrnty.CQRS.Grpc
Purpose: Maps registered commands and queries to gRPC services. Uses Google Rich Error Model for structured validation errors.
Target: net10.0 | AOT: No
Key Types:
CqrsBuilderExtensions.AddGrpc()-- Enable gRPC endpointsGrpcCqrsOptions-- Configuration (reflection, etc.)
Internal Dependencies: Svrnty.CQRS
External Dependencies: Grpc.AspNetCore 2.71.0
5. Svrnty.CQRS.Grpc.Abstractions
Purpose: Attributes for controlling gRPC code generation behavior.
Target: net10.0 | AOT: Yes
Key Types:
GrpcIgnoreAttribute-- Marks a command/query to be excluded from gRPC service generation
Internal Dependencies: None
6. Svrnty.CQRS.Grpc.Generators
Purpose: Roslyn source generator that auto-generates .proto files and gRPC service implementations from registered command/query types.
Target: netstandard2.0 (Roslyn component) | AOT: N/A
Key Types:
- Source generator (analyzer DLL)
- MSBuild
WriteProtoFileTask-- Writes generated.protofiles to disk - Build targets and props for NuGet consumers
Internal Dependencies: None (ships as analyzer)
External Dependencies: Microsoft.CodeAnalysis.CSharp 5.0.0, Microsoft.Build.Utilities.Core 17.0.0
7. Svrnty.CQRS.FluentValidation
Purpose: Integrates FluentValidation with command/query registration. Validators are automatically invoked before handler execution.
Target: net10.0 | AOT: Yes
Key Types:
ServiceCollectionExtensions.AddCommand<TCmd, TResult, THandler, TValidator>()-- Register command with validator- Automatic
AbstractValidator<T>binding
Internal Dependencies: Svrnty.CQRS, Svrnty.CQRS.Abstractions
External Dependencies: FluentValidation 11.11.0
8. Svrnty.CQRS.DynamicQuery.Abstractions
Purpose: Interfaces for the dynamic query subsystem. Defines how data sources are provided and queries are intercepted.
Target: netstandard2.1, net10.0 (multi-target) | AOT: Conditional
Key Types:
IQueryableProvider<TSource>-- Provides anIQueryable<T>data sourceIQueryableProviderOverride<TSource>-- Override default providerIAlterQueryableService<TSource>-- Intercept/modify queryablesIDynamicQuery/IDynamicQueryParams-- Query parameter contractsIDynamicQueryInterceptorProvider-- Interceptor registration
Internal Dependencies: None
External Dependencies: PoweredSoft.DynamicQuery.Core 3.0.1
9. Svrnty.CQRS.DynamicQuery
Purpose: Implementation of dynamic query execution with filtering, sorting, grouping, pagination, and aggregation.
Target: net10.0 | AOT: Yes
Key Types:
ServiceCollectionExtensions.AddDynamicQueryWithProvider<TSource, TProvider>()-- Register a queryable provider- Dynamic query handler pipeline
Internal Dependencies: Svrnty.CQRS.DynamicQuery.Abstractions, Svrnty.CQRS
External Dependencies: PoweredSoft.DynamicQuery 3.0.1, Pluralize.NET 1.0.2
10. Svrnty.CQRS.DynamicQuery.MinimalApi
Purpose: HTTP Minimal API endpoints for dynamic queries. Exposes each registered entity as a POST endpoint with filter/sort/page parameters.
Target: net10.0 | AOT: No
Key Types:
- Endpoint mapping for dynamic query routes (
/api/dynamic-query/{entity})
Internal Dependencies: Svrnty.CQRS.Abstractions, Svrnty.CQRS.DynamicQuery.Abstractions, Svrnty.CQRS.DynamicQuery
External Dependencies: Microsoft.AspNetCore.App
11. Svrnty.CQRS.DynamicQuery.EntityFramework
Purpose: Entity Framework Core integration for dynamic queries. Provides an EF-backed IAsyncQueryableService.
Target: net10.0 | AOT: No
Key Types:
- EF Core queryable service adapter
Internal Dependencies: Svrnty.CQRS.DynamicQuery
External Dependencies: PoweredSoft.Data.EntityFrameworkCore 3.0.0
12. Svrnty.CQRS.Events.Abstractions
Purpose: Interfaces for domain event publishing.
Target: net10.0 | AOT: Yes
Key Types:
IDomainEvent-- Marker interface (EventId, OccurredAt)IDomainEventPublisher-- Publish events to external systems
Internal Dependencies: None
13. Svrnty.CQRS.Events.RabbitMQ
Purpose: RabbitMQ-backed implementation of domain event publishing.
Target: net10.0 | AOT: No
Key Types:
- RabbitMQ event publisher implementation
Internal Dependencies: Svrnty.CQRS.Events.Abstractions
External Dependencies: RabbitMQ.Client 7.0.0, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Options
14. Svrnty.CQRS.Sagas.Abstractions
Purpose: Interfaces and types for the saga orchestration pattern with compensation (rollback) support.
Target: net10.0 | AOT: Yes
Key Types:
ISaga<TData>-- Define a saga with stepsISagaBuilder<TData>-- Fluent builder for local and remote stepsISagaStepBuilder<TData>-- Configure Execute/Compensate actionsISagaRemoteStepBuilder<TData, TCommand>-- Remote command steps with timeout/retryISagaOrchestrator-- Start sagas, query stateISagaData-- Marker interface (CorrelationId)SagaState-- Persistent saga state (status, completed steps, errors)SagaStatus-- Enum: NotStarted, InProgress, Completed, Failed, Compensating, CompensatedISagaStateStore-- Persistence abstractionISagaMessageBus-- Messaging abstractionSagaMessage/SagaStepResponse-- Message typesISagaContext-- Step execution context
Internal Dependencies: None
15. Svrnty.CQRS.Sagas
Purpose: Default saga orchestrator implementation with step execution, compensation, and state management.
Target: net10.0 | AOT: Yes
Key Types:
- Saga orchestrator engine
- In-memory state store (default)
Internal Dependencies: Svrnty.CQRS, Svrnty.CQRS.Sagas.Abstractions
External Dependencies: Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Options
16. Svrnty.CQRS.Sagas.RabbitMQ
Purpose: RabbitMQ-backed message bus for distributed saga step execution across microservices.
Target: net10.0 | AOT: No
Key Types:
- RabbitMQ saga message bus implementation
Internal Dependencies: Svrnty.CQRS.Sagas
External Dependencies: RabbitMQ.Client 7.0.0, Microsoft.Extensions.Hosting.Abstractions, Microsoft.Extensions.Options
17. Svrnty.CQRS.Notifications.Abstractions
Purpose: Interfaces for real-time notification streaming to clients.
Target: net10.0 | AOT: Yes
Key Types:
INotificationPublisher-- Publish notifications to subscribed clientsStreamingNotificationAttribute-- Marks a type as a streamable notification with a subscription key
Internal Dependencies: None
18. Svrnty.CQRS.Notifications.Grpc
Purpose: gRPC server-streaming implementation for real-time notifications.
Target: net10.0 | AOT: No
Key Types:
- gRPC notification streaming service
Internal Dependencies: Svrnty.CQRS.Notifications.Abstractions
External Dependencies: Grpc.AspNetCore 2.71.0, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Extensions.Logging.Abstractions
Additional Projects (not NuGet packages)
| Project | Path | Purpose |
|---|---|---|
Svrnty.Sample |
Svrnty.Sample/ |
Sample web application demonstrating commands, queries, gRPC, MinimalApi, DynamicQuery, and validation |
Svrnty.CQRS.Tests |
tests/Svrnty.CQRS.Tests/ |
Unit and integration test suite |