So maybe just a quick walk through of the workflow I was describing. It's around insurance eligibility.
Messages enter via a web service -> validation/clean up service -> workflow owner service, checks to see what components need executed from rules then sends all of them out -> (just care about eligibility right now) -> build the outgoing EDI document -> load balanced connection to third party that responds with another EDI document -> data processor to transform EDI document into object representation -> data to load stuff into reporting tables -> responds to workflow owner service -> waits for all steps to be completed and sends out a message to the return service -> generates a response to the customer.
A few of these services (connecting to a third party, transforming EDI response) are load balanced. Others have different configuration for threading/etc. All of them report metrics to the operations service. We have additional paths which are similarly executed at the same time from the workflow owner service.
Now, if you already have an ETL process, splitting it may not make sense. What we've always ended up doing is unrolling batches and having a coordinator keep track of the batch group to report if the batch is complete. This lets everyone use the same infrastructure (we don't ETL) of a single transaction with just a couple different front ends. Owning both a batch and a real time instance of the same code gets old.
=
So I know nothing about Pandora using MassTransit - but if you saw it on our website, Pandora is the WordPress theme we're using. I do know some banks use it. Novell uses it for some VM/cloud management stuff. Microsoft uses (or maybe used, the one guy involved isn't there any more) it for something internal. I've deployed it a few smaller organizations. It's in a few healthcare organizations.