Aggregates.NET is a framework to help developers integrate the excellent NServicebus and EventStore libraries together.
This library contains code to help create and manage domain driven design objects such as Aggregates, Entities, Value Objects, etc. This framework is by far not the only option, other libraries include:
This project was originally inspired by and still uses many ideas from NES and CommonDomain.
We fill in the gap between EventStore and NServicebus. Commands from NServicebus are applied to aggregate objects via message handlers and events generated via the aggregates are saved to the event stream and published to the bus.
Current features include -
- Aggregate Roots
- Entities
- Value Objects
- Specifications
- Multithreaded event dispatching (NEW)
- Type safe Unit of Work and Repository pattern
- Automatic saving and publishing of domain events
- Message idempotency
- NO internal IOC container (NServicebus used for resolutions)
- Thorough sample
Planned future features -
- Automatic conflict resolution (when possible)
- Automatic validation using specifications
- Projections configuration
Aggregates.NET packages are starting to get published to the world. The project is completely under test and can be integrated into NServicebus and Eventstore seemlessly. Future versions of Aggregates.NET will be automatically published so keep checking back for latest features!
Nuget packages are published in a pre-release state. They are available under the id Aggregates.NET. There are also binaries and source code releases available via github.