A lightweight CQRS and Event Sourcing framework for .NET, providing essential building blocks with minimal dependencies.
CQRSlite is a lightweight framework for building CQRS and Event Sourcing applications in C#. It provides the essential building blocks like command sending, event publishing, and repository patterns to implement scalable architectures that separate read and write operations. The framework captures all state changes as a sequence of events, enabling audit trails and complex business logic.
.NET developers building enterprise applications that require scalable architectures, auditability, and complex domain logic. It's particularly useful for teams implementing Domain-Driven Design (DDD) patterns.
Developers choose CQRSlite for its minimal dependencies, pluggable architecture, and focus on core CQRS/ES patterns without imposing specific storage solutions. It offers thread-safe caching, optimistic concurrency, and snapshotting out of the box while maintaining flexibility.
A lightweight framework to help creating CQRS and Eventsourcing applications in C#
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Targets netstandard2.0 and net9.0 with only one dependency on Microsoft.Extensions.Caching.Memory, making it lightweight and compatible across various .NET environments, as highlighted in the Key Characteristics.
Allows developers to replace any component with custom implementations, adhering to clean CQRS/ES principles without vendor lock-in, as emphasized in the Philosophy section.
Includes snapshotting for aggregates with many events and a thread-safe caching layer with automatic invalidation, directly mentioned in the Features to improve scalability and reduce load.
The framework explicitly requires developers to implement their own IEventStore for persistence, adding significant upfront work and decision-making on storage technology, as noted in the Requirements section.
Setup involves configuring services, routers, and handlers manually or via reflection, as shown in the Quick Start, which can be error-prone and time-consuming compared to more automated solutions.
CQRS and Event Sourcing patterns inherently introduce a steeper learning curve and architectural overhead, making it unsuitable for teams unfamiliar with domain-driven design or event-driven systems.