views:

3122

answers:

2

Just doing some quick spikes into possibly using a messaging system to process files that are in a nicely decoupled work flow system.

What are the pro's and cons that people have found of using each of the above frameworks? What are the advantages of using these versus a hand-rolled MSMQ system with the WCF bindings and/or non-MSMQ solutions??

+4  A: 

a potential con of anything MSMQ based is the restriction on maximum message size. IIRC it is approximately 4MB, which you might easily run into if you're dealing with large files and storing the file content within the message.

Steven Adams
Interestingly enough, most cloud-based queues don't even support payloads of 100KB, so this is something that will need to be taken into account by many apps in the future.
Udi Dahan
In Enterprise Integration Patterns (Woolf,Hohpe), the Claim Check pattern specifically addresses this concern. A reference to the large payload is kept in the message only, keeping the message small. Large message sizes can wreak havoc on the throughput of a messaging system.
Chris Patterson
+17  A: 

I'd recommend staying away from hand-rolled solutions as there is a bunch of somewhat difficult stuff that needs to be gotten just right - like how transactions are handled, how exceptions cause rollbacks, how to stop rolling back endlessly (poison messages), how to integrate with long-running workflows so that the state management boundaries line up, and more.

You will probably want some kind of durable/transactional messaging infrastructure, so not using MSMQ you'd be left with Service Broker on the Microsoft platform, or some other alternative like ActiveMQ. MSMQ has the benefit of already being installed on all Windows machines, as opposed to Service Broker which isn't.

In terms of choosing between NServiceBus, Mass Transit, and Rhino Service Bus - it can be characterized as what taste you prefer, though NServiceBus has been around the longest and is arguably the most stable.

Hope that helps.

Udi Dahan
Can you elaborate on "what kind of taste you prefer" means? What are some of the more noticeable differences between your nServiceBus and the other solutions (apart from being the oldest and most stable)?
jacko
Udi Dahan
Cool, thanks Udi!
jacko
It's probably worth noting that Udi is the AUTHOR of NServiceBus, and so his opinion may be a little biased here. :) Having said that, I completely agree, and would advocate the use of NServiceBus for the same reasons he has done.
skb