Skip to content

Architecture ​

Clean Architecture .NET 9 ​

RIVORA Framework follows a strict layered architecture with 47 projects:

Presentation (API)           Controllers, Minimal APIs, gRPC, SignalR, GraphQL
       |
Application (CQRS)          Commands, Queries, Validators, DTOs (MediatR)
       |
Domain (Business)            Entities, Value Objects, Domain Events, Specifications
       |
Infrastructure (Data)       EF Core 9, Repositories, External Services

Fundamental rule: dependencies always point inward. Domain depends on nothing. Infrastructure depends on Domain and Application, never the reverse.

Project Structure ​

LayerProjectsRole
CoreCore, DomainAbstractions, entities, events, specifications
ApplicationApplicationCQRS (MediatR), services, validators, DTOs
InfrastructureInfrastructure, Data.* (4 providers)EF Core, repositories, external services
PresentationApi, GraphQL, Admin, RealTimeREST, GraphQL, Blazor, SignalR
SecuritySecurity, Identity.ProJWT, BCrypt, 2FA, Rate Limiting, Audit
Multi-TenancyMultiTenancy, SaaSTenant isolation, billing
Cross-CuttingCaching, Jobs.*, HealthChecks, Notifications, StorageCross-cutting modules
AIAI, NaturalQueryRAG, vector store, NL Query Builder
IntegrationExport, Webhooks, ClientPDF/Excel/CSV, SaaS webhooks, typed API client
DevOpsAppHost, ServiceDefaults.NET Aspire orchestration
ToolsRVR.CLI, RVR.StudioCLI scaffolding + AI, visual IDE

Modularity ​

Each module implements IRvrModule for standardized registration:

csharp
builder.Services.AddRvrModule<CachingModule>(builder.Configuration);
builder.Services.AddRvrModule<SecurityModule>(builder.Configuration);
builder.Services.AddRvrModule<MultiTenancyModule>(builder.Configuration);

This approach allows scaling from a modular monolith to microservices without major refactoring.

Released under the MIT License.