Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Implementing a Message Bus architecture

Tags:

I'm currently doing analysis and design for a new message bus architecture in my company. I have tried MSMQ to do something like this in the past and it works well and was thinking of doing the same thing again for this project but using WCF as the API instead of using the System.Messaging API. Has anyone had experience with MSMQ in WCF? Is it easier to use then the System.Messaging API? What would be some benefits of using WCF over System.Messaging or vice versa?

like image 253
heartlandcoder Avatar asked Apr 06 '09 18:04

heartlandcoder


People also ask

What is message bus architecture?

The message bus is also a means of structuring software, in that it defines a system-level software architecture. Classical structuring techniques are used to construct the individual components, which can be very different from one another internally, for example written in different languages.

What is message bus in microservices?

Message Bus ConnectionIt allows consumers to subscribe to messages of certain types and allows producers to create messages of a certain type. The bus then connects these producers and consumers together.

What is Eventbus in microservices?

An event bus allows publish/subscribe-style communication between microservices without requiring the components to explicitly be aware of each other, as shown in Figure 6-19.

What is message based architecture?

“ - The next architectural pattern I want to show you is a message-based architecture. This architecture takes the notion of a microkernel a step further by formalizing the communication paths between elements and isolating them even further.


2 Answers

Sorry, coming very late to this, but hopefully my answer is useful for MSMQ 4.0 users (but not necessarily useful to users of later versions).

Both WCF Queuing and System.Messaging are wrappers over the MSMQ APIs. WCF is more sophisticated and complex, but does have the following benefits:

  • An OO view of your application's business processes rather than its communication plumbing.
  • End-to-end message encryption and authentication for free. System.Messaging only supports encryption on the wire, not in the store.
  • If you wish, you can host within IIS rather than building your own custom host.
  • Message correlation for free. This allows you to group messages into sessions automatically.
  • Transactional batching for free.
like image 36
HTTP 410 Avatar answered Sep 19 '22 14:09

HTTP 410


IMHO, with so many good, flexible and proven bus architectures to choose from (NServiceBus, Mass Transit, Rhino Service Bus), implementing your own would be a big NIH. It's not a trivial task.

Udi describes it very well in this message.

like image 114
Mauricio Scheffer Avatar answered Sep 16 '22 14:09

Mauricio Scheffer