For the last part of this short series, let’s take a glance at some conceptual differences between RabbitMQ and MSMQ from developer’s point of view. We can’t cover much in a single blog post, so let’s just mention few things to get you started. Declaring queues and exchanges Queues and exchanges in RabbitMQ are often temporary […]
Category: MSMQ
Distributed brokers – RabbitMQ for MSMQ users, part 5
When working with MSMQ, we usually don’t think about “distributed brokers” as a separate topic. It’s core MSMQ functionality. From user’s point of view, you only change destination address (i.e. format or path), and message magically goes to remote MSMQ server. Behind the scene, it’s supported by outgoing queues where messages are temporarily stored until […]
Policies – RabbitMQ for MSMQ users, part 4
What is RabbitMQ policy? Policy is a way to centralize management of queue properties. It’s common that queues which are used for similar things have the same configuration. For example, they could have same “time to live”, or deadletter settings. Instead of setting up the same list of settings for each queue, which is time-consuming […]
More about queues – RabbitMQ for MSMQ users, part 3
On the first glance, RabbitMQ queues are very similar to MSMQ queues. First important difference is that you can’t change queue properties once a queue is created. There’s a way around that using policies, and we’ll talk about them later. Also, RabbitMQ queues don’t have subqueues or journals. Queue properties Each queue has only these two […]
RabbitMQ Exchanges – RabbitMQ for MSMQ users, part 2
Exchanges are a new concept for MSMQ users. In RabbitMQ you can’t send to a queue directly, only through an exchange. Exchange is some sort of router – it determines which messages go where. In this process messages could be multiplied, i.e. single source message could end up in multiple destination queues. This routing is […]
Introduction to RabbitMQ for MSMQ users, part 1
This series of blog posts, similar to previous posts about Azure Service Bus, is intended for those who already have some MSMQ experience and would like to know more about RabbitMQ. It’s based on my own experiences when I learned about RabbitMQ, what was familiar and what not, and what looked familiar but surprised me […]
Developer’s perspective – Azure Service Bus for MSMQ users, Part 5
For the last part of this short series, let’s take a glance at some high-level differences between Azure Service Bus and MSMQ from developer’s point of view. We can’t cover much in a single blog post and, so let’s just mention few things to get you started. Story of two APIs Actually, Azure Service Bus has […]
More about messages – Azure Service Bus for MSMQ users, Part 4
Let’s talk a bit more about Azure Service Bus messages and what’s different compared to MSMQ. For start, there are mechanisms to hide messages and delay their processing. This is available both in queues and topics/subscriptions. Deferred messages If a message shouldn’t be processed immediately but shouldn’t be deleted for good either, you can defer it. While message is […]
More about queues – Azure Service Bus for MSMQ users, Part 3
Special subqueues Each Azure Service Bus queue has several subqueues. There’s no possibility to create your own custom subqueue like you can in MSMQ. Also, there’s no journal like we have in MSMQ to keep all received messages (if turned on). There are no outgoing nor 3 system MSMQ queues. Let’s see what we do have. […]
Topics and subscriptions – Azure Service Bus for MSMQ users, Part 2
Topics and their subscriptions represent publish-subscribe (pub-sub) messaging pattern. If you’re coming from MSMQ, that’s a new concept. What’s the difference to plain old queue? Simplest scenario for a queue (and arguably most common one) is – single sender and single receiver: Of course, we could have multiple senders, but that doesn’t create problems unless we want to […]