Tonight at 6:00 PM at Neumont University (room 300) in Sandy, Utah--the same place where the Utah Code Camp is held. I'll be giving a presentation on my EventStore project and going into a little bit of detail regarding the advantages of event sourcing--specifically idempotent messaging and rebuilding view models. If you're in the area, you're welcome to attend. If not, you can watch the recording of the European Virtual ALT. »
To use event sourcing or not is an interesting question and one that should not be taken lightly. The two main camps in the debate contend on several key points among which include business necessity, architectural gold plating, educational overhead, and tool support. For a moment, let's consider the argument to use or not use event sourcing in a different light.
Let's take a "real-world" example and see how the presence of event sourcing could fundamentally change the investigation of a crime scene. »
The video for my Europe Virtual ALT.NET Presentation for the CQRS EventStore is now live (as of a week ago) I have also just posted the slides for the presentation to SlideShare. »
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. »
Just in case you missed the announcement, I will be presenting today at 7:00 PM UTC on the EventStore project for the Europe Virtual ALT.NET conference. The event will be recorded and available for later viewing if you can't make it. »
The official release for EventStore 3.0 is just around the corner. Following SemVer semantics, this is now version 3.0 instead of 2.1 or whatever. his post is to highlight the differences between 2.0 and 3.0. First and foremost, the packages are available for download here in both .NET 3.5 and .NET 4.0 flavors:
https://github.com/joliver/EventStore/downloads (contains all binaries and plugins for various persistence and serialization methods)
On NuGet, the following packages have been pushed. »
I've been using Git now for several years. Over a year ago I bumped into a great article about A Successful Git Branching Model. It's a great article in its own right and deserves your attention if you're using Git. If you're not using Git, you'd better be using some form of distributed version control. If you're not…well…I digress.
One of the things about Git that I never worried about too much was leveraging branches for various work items. »
Years ago I considered Javascript to be more or less of a joke as a language. At the time browser implementations made creating a consistent implementation both dangerous and time consuming. Time passed and several very significant things happened:
FireFox 1.0 and the modern browser. Google Maps jQuery Web-scale loads Because of these developments, much of my recent work has been able to leverage Javascript more fully thus making the browser an integral part of a fully distributed system. »
Jimmy Bogard's recent blog post entitled Cleaning up POSTs in ASP.NET MVC was a great read. But I wanted to share another method that I have used with great success in recent months. One of the primary issues that Jimmy is trying to solve in his blog post is that of DRYing up duplicate code by creating application-level infrastructure code that can easily be used and varied within certain boundaries. »
As a committer on NServiceBus, I'm typically running the code from the master branch head in production. Crazy, huh? I commit made against the master branch not too long ago affected my application code in its ability to properly handle a message. But it didn't cause me any long-term grief.
Why?
The answer is simple. Guaranteed delivery. The messages couldn't be processed so they were forwarded to an error queue. One in the error queue, we were made aware of the problem and were able to fix it in short order. »