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.