Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

MassTransit 2.0 Beta – Boo Yeah!

After what seems like a long slumber, along with work being done on other projects such as Topshelf and Stact, it is our great pleasure to announce the first beta release of MassTransit v2.0. What originally started out as a minor “1.3” update has turned into a full-out cleanup of the codebase, including a refinement of the configuration API. Since there were some breaking changes to the configuration, we felt a 2.0 moniker was better to ensure users of the framework understood the depth of the changes made.

And what a list of changes it is (TL;DR = We filled it with awesomeness):

  1. Configuration
    MassTransit v2.0 now includes a streamlined configuration model built around an extensible fluent interface (inspired by Stact and Topshelf and sharing a common, consistent design). As a result, getting started with MassTransit is now easier than ever. In version 2.0, all configuration starts with the ServiceBusFactory and intellisense guides you from there forward. The result is a clean, understandable API and a quicker out-of-the-box experience.
  2. Container-Free Support
    With the release of MassTransit 2.0, using a dependency injection container is now optional. When we started MassTransit, we leveraged the container extensively to assemble the internal workings of the bus. As we added support for other containers, required features that were not supported by a particular container led to some creative solutions (read: hacks) that were less than optimal. By moving away from a “container-first” approach, we have increased the reliability of the software and now provide container-specific extensions to subscribe consumers from the container in one simple step. We also threw in support for Autofac!
  3. Quick-Start
    By simplifying the configuration, and dropping the need for a container, it is now fast and easy to get started using our new QuickStart:
  4. #NuGet
    NuGet packages have been added for the base MassTransit project, with any external dependencies (log4net and Magnum) resolved using the proper NuGet packages. Any additional references are downstream in additional NuGet packages, such as support for persisting sagas using NHibernate (MassTransit.NHibernate), and the various dependency injection containers supported.
  5. Multiple Subscription Service Options
    In addition to the existing RuntimeServices included with MassTransit, an all-new peer-to-peer subscription service has been added. By leveraging the reliable multi-cast support in MSMQ, services can now exchange subscription information without the need for a centralized subscription service. To ensure everything is setup correctly, a VerifyMsmqConfiguration method has been added that will check the installation of MSMQ and install any missing components. This is the first iteration of multi-cast support, and we need to get some mileage on it. In the meantime, the original run-time services continue to work as expected.
  6. Documentation
    Which brings us to the next big update. DOCS! They’re not perfect, and they’re far from complete, but we have focused on the configuration story to help get you up and running. As we see a need for more documentation in a given area, we will continue to flush out the docs appropriately. The docs are located at http://docs.masstransit-project.com/ and are being hosted by the fine people at http://readthedocs.org. [Thanks Eric!]
  7. Support for .NET 4.0 and .NET 3.5
    The project files and solution have all been updated to Visual Studio 2010 SP1. By default, all projects are now built in the IDE targeting .NET 4.0. The command-line build (which has been revamped to use Rake and Albacore) builds both .NET 3.5 and .NET 4.0 assemblies, including the run-time services and System View. The NuGet packages also include the proper bindings for the target project run-time version (you must use the full .NET 4.0 profile with MassTransit, the client profile is not supported).
  8. Transport Support
    Internally, the transports and endpoints have been redesigned to improve the support for new transports like RabbitMQ (and improve our ActiveMQ support). For example, transports are now inbound, outbound, or both, allowing us to properly leverage fan-out exchanges on RabbitMQ for publishing and subscribing to messages. There is more to come in this area as we take greater advantage of these advanced transport features. If you’re a RabbitMQ or ActiveMQ user and don’t mind getting your hands dirty, now is a great time to jump in and help improve transport support.
  9. Distributor Consumer And Saga Support
    Work on the MassTransit distributor subsystem continues to be improved. Testing on a multi-master system has been completed which will allow it to serve multiple distributors to improve load balancing efficiency. Support for all sagas (previously only state machine sagas were supported) has been added as well.
  10. Swinging the Feature Axe
    Some previous troublesome and poorly supported features (Batching and Message Grouping) were removed from the 2.0 release to reduce code complexity. Also in light of the new Parallel Tasks work in the framework the Parallel namespace has been removed.

About Dru Sellers

Sr. Software Engineer at Dovetail Software.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Anonymous

    Glad that you are finding it useful!

  • Anonymous

    Just started to use MT.

    It just works! :)

    also I love the clean way it integrates my applications

  • Anonymous

    I am not sure I understand. The masstransit site’s ‘Learn More’ link goes to http://docs.masstransit-project.com (where our docs are) and the topshelf link goes to http://topshelf-project.com/documentation where the topshelf docs are. Where you seeing something different?

  • Eric

    Why have learn more links if they don’t go anywhere? Same problem with the Top Shelf site. It’s pretty annoying when you’re trying to evaluate the technology.

  • Pingback: Distributed Weekly 101 — Scott Banwart's Blog

  • http://profiles.google.com/oskarwkarlsson Oskar Karlsson


  • Anonymous

    Bert, are you just out to bust my chops? Correct, we do not consider ourselves an ESB in the sense of Tibco or IBM’s products. But for the purposes, of quickly explaining what MT is I believe the term ‘ESB’ most succinctly captures it.

  • Bert

    Thank you for the link.

    Under http://masstransit-project.com/documentation/masstransit-overview they say:

    “First and foremost, we are not an Enterprise Service Bus (ESB) …”

  • Anonymous

    MassTransit is on open source ESB on the .Net Platform. http://masstransit-project.com

  • Anonymous

    shoot me some sample code for what pubsubhubbub or the redis client look like and I can confirm but my guess would be yes. key things: take a stream of bytes, address, headers support.

  • Pingback: The Morning Brew - Chris Alcock » The Morning Brew #844

  • http://profiles.google.com/oskarwkarlsson Oskar Karlsson

    cool stuff! MT have been on my radar for a while now, will have to take a look…

    Would the new Transport abstraction be open enough for me to rip out the queue stuff and drop a google-pubsubhubbub, a much less reliable but uber perfomant UDB broadcast or redis as a transport below masstransit?
    Not that I don’t acknowledge reliable queues as the fundament for distributed pub/sub, I am interested in the level of of coupling there is to the transport.

  • Bert

    What is MassTransit ? A hint would be helpful.

  • directory submission

    This is nice information share over here. Mass Transit is now easier than ever. In adaptation 2.0, all agreement starts with the Service BusFactory and intellisense guides you from there forward. The after effect is a clean, barefaced API and a quicker out-of-the-box experience.