Add the core package to your project:
# Package Manager
Install-Package Memoria
# .NET CLI
dotnet add package Memoria
# Paket
paket add Memoria
Then pick one of:
Only Memoria is required. Add the others when you need them.
| Name | When to install |
|---|---|
| Memoria | Required. Mediator core: commands, queries, notifications, dispatcher. |
| Memoria.EventSourcing | When you want aggregates, streams, and an IDomainService. Pairs with one of the stores below. |
| Memoria.EventSourcing.Store.EntityFrameworkCore | Event sourcing on top of EF Core (SQL Server, SQLite, PostgreSQL, MySQL, In-Memory). |
| Memoria.EventSourcing.Store.EntityFrameworkCore.Identity | Above, plus ASP.NET Core Identity in the same DbContext. |
| Memoria.EventSourcing.Store.EntityFrameworkCore.Npgsql | Adds PostgreSQL jsonb-aware event-property filtering to the EF Core store. |
| Memoria.EventSourcing.Store.Cosmos | Event sourcing on top of Azure Cosmos DB (SQL API). |
| Memoria.EventSourcing.Store.Cosmos.InMemory | In-process Cosmos stand-in for tests and local dev. |
| Memoria.Messaging.ServiceBus | Publish messages to Azure Service Bus when a command succeeds. |
| Memoria.Messaging.ServiceBus.InMemory | In-process Service Bus stand-in for tests. |
| Memoria.Messaging.RabbitMq | Publish messages to RabbitMQ when a command succeeds. |
| Memoria.Messaging.RabbitMq.InMemory | In-process RabbitMQ stand-in for tests. |
| Memoria.Caching.Memory | Cache query results in-process. |
| Memoria.Caching.Redis | Cache query results in Redis. |
| Memoria.Validation.FluentValidation | Auto-validate commands with FluentValidation before they hit the handler. |