It all started out when I was an consultant. NServiceBus didn’t even have a name, it was just a set of messaging libraries I grew gradually as I moved from one project to another.
And, of course, every open-source project needed a website, so I created one.
I’ll admit it – I don’t know how to make good UIs.
Now, we’ve got a part-time designer who helps us make things look good / or at least better than they looked before.
Sometimes people ask me why we went and created all these other things – wasn’t NServiceBus enough?
This was our #1 request over the years with NServiceBus – a dashboard for seeing if the system was functioning correctly.
And while the loose coupling of NServiceBus makes it scale…
It can be hard debugging many moving parts. ServiceInsight
ServiceMatrix has been a big bet for us. While I’ve always been against draggy-droppy tooling, simply having a visualization of a system across multiple endpoints – who publishes what, who subscribes to what, and having that stay up to date – I think that that’s huge.
We’re taking some meaningful steps in reducing our dependency on the Distributed Transaction Coordinator.
Already today our SQL Transport doesn’t require the DTC.
The feature that takes the place of the DTC is our “Outbox” which makes sure that messages don’t “escape” the message-processing transaction boundary before the transaction is complete, as well as deduplicating messages on the way in.
Performance-wise, we’re seeing improvements of 200%-300% for complex business logic – less so, for simple message handlers.
With this coming release, we’re turning the Outbox on by default for RabbitMQ.
In later releases, we’ll be bringing it to MSMQ as well as the other transports.
We’re also looking at making the concept of Idempotence a first-class citizen in NServiceBus.
And, before we get started with the rest of the conference – I wanted to give you all a little gift.
This thumb drive includes the first two days of my 5-day Advanced Distributed Systems Design course – covering all the fallacies of distributed computing, messaging patterns, differences between buses and brokers, as well as the principles of SOA.