Question

I have been doing some research on the disruptor pattern for high performance reliable messaging systems, and as an avid user of NServiceBus I was wondering if this is something which could be implemented for it? Or perhaps there is already an implementation of this... I was just wondering about others thoughts on this?

Was it helpful?

Solution

If you're referring to the LMAX architecture and Martin Thompson of Mechanical Sympathy then the answer is no, at least in the near future. The reason is that the disruptor architecture is different from that of NServiceBus at fundamental levels. To quote the Disruptor GitHub page:

This is not a specialist solution, it's not designed to work only for a financial application. The Disruptor is a general-purpose mechanism for solving a difficult problem in concurrent programming. It works in a different way to more conventional approaches, so you use it a little differently than you might be used to. For example, applying the pattern to your system is not as simple as replacing all your queues with the magic ring buffer.

So it may be possible to use some of the abstractions present in NServiceBus, such as IMessageHandler, and use the ring buffer as an underlying transport, but it is also likely that some of the abstractions would need to be altered.

Overall though, I think this is a very good question to address.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top