DDDSample.NET 0.5, finally asynchronous!
I am very proud to announce that just released version 0.5 of DDDSample.Net demonstrates (finally!) how inter-aggregate communication was supposed to work from the beginning: using asynchronous communication patterns.
Version 0.5 contains 3 different work modes (you can change them using solution configuration switch):
- InMemory. In this mode domain objects are not persisted but, instead, stored in static collections in main memory. This mode is intended to help novice users head-start with DDDSample since it does not need any additional configuration to work — just install the msi package.
- NHibernate. In this mode NHibernate is used to persist domain model data. Inter-aggregate communicaton is done synchronously using domain event pattern.
- NHibernateAsynch. This mode demonstrates full power of architectural approach used in DDDSample.Net. Data is stored using NHibernate while asynchronous communication between aggregates is handled by NServiceBus/MSMQ combination.
Next (minor) step in DDDSample.Net development should be probably replacing InMemory mode with SQLite in-memory database. What’s the difference? Current in-memory mode doesn’t use O/RM. It would be nice to have the sample as easy to run as it is now and have it persist it’s data using NHibernate so that users whould be able to see the process through all the layers.