Today marks the one year anniversary of the first commit to the MassTransit GoogleCode repository. While Dru Sellers and I initially did some proof of concept work, this day marks the decision to go forward with a standalone .NET messaging framework.
MassTransit was started as a collaborative effort to provide a lightweight messaging framework on MSMQ for .NET applications. Both Dru and I needed a framework for asynchronous messaging to address some work-related application requirements. While MSMQ is provided out of the box, it doesn’t directly encourage some good distributed application practices such a loose coupling. Our goal was to abstract the messaging aspects so the services could be built to deal with plain old objects (POCOs) instead of lower level transport messages.
Originally, we both looked at NServiceBus as a way to make this happen. I’ve followed Udi’s blog for a while and have really gained a lot of knowledge from his posts and presentations. However, our lack of experience in Spring.NET, along with a general lack of understanding of all the complexity of such a framework led us down the path of building our own framework.
So that’s how MassTransit got started. A year later we’re still improving the code and providing useful functionality for developers to build loosely-coupled asynchronous applications. We’ve even harvested some common functionality (such as the service host, which is now a standalone project Topshelf), and plan to harvest out some additional features in the near future. The great thing about building open source software is the cooperative nature — even on similar projects. We all learn from each other and build that knowledge into tools that other developers can use and learn from as well.