NServiceBus
A study in default contradictions: Don't show me XML, gimme configuration options
I am currently doing some work with messaging, and I am using both NServiceBus and Mass Transit, to get a good feel on what best match what I actually need. One of the things that they both have is XML configuration. In Mass Transit case, it looks like this: <facility id="masstransit">
<bus id="local" endpoint="msmq://localhost/test_servicebus">
<subscriptionCache mode="local" />
<subscriptionService endpoint ="msmq://localhost/mt_pubsub" />
<managementService endpoint ="msmq://localhost/mt_dashboard" />
</bus>
<bus id="distributed" endpoint-"msmq://localhost/test_remoteservicebus">
<subscriptionCache mode="distributed">
<servers>
<server>192.168.0.1:11211</server>
...
The Sewer Architecture
On Friday, I had an encounter with the sewers at my house. On Call team has came and fixed the issue, which was a plugged pipe somewhere down the street very fast, so no harm was done (although checking the sewers just after taking a shower is not my idea of fun). That did, however, let me learn a bit about the way sewers are constructed. Broadly, the sewer is based on the idea of pipes and pools ( at least, those are the Hebrew terms, translated ). The idea is that the sewer flows in the pipes,...
Putting the container to work: Refactoring NServiceBus configuration
One of the most common issues when people are building frameworks and applications that rely on a container is that they are not giving the container enough to do. Basically, they use the container to create some components, but they are doing a lot of things that the container could do for them outside of the container. Note: Code for this post can be in the Scratch Pad. NServiceBus and Mass Transit are good examples of that. I detailed some of the issues that I had with Mass Transit a while ago. Udi and...
Batching WCF Calls
Several months ago I wrote about how I think you should design your services. The key criteria was that they have to have a batch mode enabled. Afterward, I put together a screen cast that goes through all the stages that led me to that stage. Davy Brion has taken this approach a bit further and posted all the infrastructure bits that are required to make this work as well as what you need to actually make the API almost as nice to use as the non batched version. The service API is here and the client...
Review: Mass Transit Samples
Yesterday I reviewed Mass Transit itself, unfortunately, I missed the samples folder, which means that I didn't get critical information about how to use Mass Transit. I am going to do the same review for the samples, trying to get a feeling for how using Mass Transit feels. Audit This seems to be only partially done, it apparently should show how we can fire off events using Mass Transit. Again, I am impress by how simple the Cunsumes<TMsg>.All makes the code, but there is nothing there as of now. Heavy Load Load testing, not something that...
Reviewing Mass Transit
A while ago I took a look at NServiceBus and its Distributor, after catching this post talking about Mass Transit, I decided that I really need to take an additional look at this project. Mass Transit is very similar in purpose to NServiceBus, and it uses a very similar approach. However, it has a radically different style. A lot of the concepts are shared between both projects. As usual, I am going to post here my thoughts as I read through the code. Opening the project is a bit overwhelming, although not as much as with NServiceBus....
NServiceBus Distributor Review
Okay, NServiceBus Distributor deserve its own post. Broadly, the way it works is fairly simple. Here is a simplified diagram, showing the workers and their queues, as well as the distributor and its queue. In here they are shown running on separate machines, but they could also be on the different processes. Now, let us zoom into the distributor a bit, shall we? Hm, we actually have two queues for the distributor, one is for workers, reporting for work (on the left), the second is applicative messages, which needs to...
NServiceBus Review
I have been planning to check this out for a while now, but I seem to never get the time. Today I made time for this. As usual in such cases, this post is a stream of consciousness. You get my thoughts as I am thinking them. Before trying to understand anything about NServiceBus, you probably need to understand a bit about distributed systems and messaging. NServiceBus is structured around a bus (into which you can put messages) and message handlers (which handles messages for you). On top of this very simple idea, everything else is built. This forces...