The framework codebase is split into a number of submodules, making it possible to only use what is needed.
- Core
- Revo.Core Implements framework’s core features like events or commands and defines basic structures and interfaces for things like the unit of work pattern, security permissions and other utilities.
- Revo.DataAccess Lower-level data access layer that provides interfaces and other abstractions for working with databases, independent of domain concepts (aggregates, consistency boundaries, etc.).
- Revo.Domain Defines most of the framework’s building blocks for an application domain model – i.e. aggregates, entities, sagas, etc.
- Revo.Infrastructure Interfaces for working with application domain and related aspects of an applications – e.g. aggregate repositories, event stores, projections, jobs, asynchronous event queues, etc.
- Revo.Testing Provides several useful facilities for easier application testing – e.g. assertions for event-sourced aggregates or fake repositories (refer to the Testing chapter).
- Providers
- Revo.AspNetCore Provides support for ASP.NET Core applications – application life cycle hooks, user context, authentication, etc.
- Revo.AspNet Provides support for ASP.NET applications – application life cycle hooks, user context, authentication, etc.
- Revo.EasyNetQ EasyNetQ integration for event messaging via RabbitMQ.
- Revo.EFCore Data access and infrastructure (aggregate store, event store, async events...) implementation using Entity Framework Core.
- Revo.EF6 Data access and infrastructure (aggregate store, event store, async events...) implementation using Entity Framework 6.
- Revo.Hangfire Hangfire integration for background jobs.
- Revo.Raven Data access layer implementation using RavenDB database system.
- Revo.Rebus Rebus integration for command/query and event messaging with RabbitMQ.
- Extensions
-
Revo.Extensions.History
Change-tracking and entity history features.
-
Revo.Extensions.Notifications An extensive and customizable framework for user notifications (including mail notifications, push notifications, etc.).
-
- Tests
- Examples