EventStore v3.0 Release

It's been a little while in coming, but nonetheless, I'm pleased to release the latest version of the CQRS EventStore As always, you can find the source code on GitHub as well as the official pre-built binaries. You can also find the EventStore package on the NuGet Gallery. NuGet is the recommended way to install.

New in the release (since the v3.0 beta release)

  • Fixes in the SQL implementation that could cause concurrency exceptions when running multiple instances of the EventStore against a single backend storage.
  • Better SQL paging support when working with large data sets.
  • Added a CommittedHeaders property to stream to help determine which "aggregate type" created the stream.
  • Pointing to the latest versions of RavenDB, Mongo, MySql Connector, Json.NET, and ServiceStack.
  • Added full logging across the library. Various logging implementations are supported including log4net and NLog.
  • Added the ability to "upconvert" events as they are loaded from persistence.
  • Added ability to share IDbConnection across multiple operations on a single thread using a "ConnectionScope" to avoid 2PC promotion when using TransactionScope.

Looking forward:

  • .NET 4.0 only. Sorry for those still using .NET 3.5 (CLR 2), it's time to upgrade.
  • As with most open source libraries, the docs are deficient. Part of the next release is to get a few GitHub wiki pages going along with some good code examples.
  • As mention in the 3.0 beta post, the essence and spirit of the CommonDomain project will be merged into the EventStore.
  • More storage engine support will be forthcoming.
  • Two areas that need a little bit of attention are the API surrounding snapshots as well as the concept of "GetFrom(DateTime start)". I'll be looking at doing something more like "GetFrom(int index)" in the near future.