What is a servicebus?

You may also like...

3 Responses

  1. Michel van den Berg says:

    So Biztalk is a message broker and NServiceBus is a servicebus that can use different queueing technologies (messaging?) like federated and brokered queues? So the word ‘broker’ in brokered queues and message brokers have no relation with each other?

    The whole vocabulary is confusing as hell 🙂

  2. Michel van den Berg says:

    Also, when looking specifically at NServiceBus:

    NServiceBus is a servicebus right?

    NServiceBus is built on top of existing queuing technologies. In NServiceBus the choice of queuing technology is referred to as a “Transport”.

    NServiceBus transports can be divided into several categories.
    Bus transports. Check. Service *bus*

    Bus transports include:
    MSMQ

    Also possible, Broker transports. Uhhhh… does this mean that it is not a service *bus* anymore? Like now it is a service *broker*? Is a servicebus using a brokered transport a servicebroker?

  3. That’s a lot of questions! And I agree the vocabulary is confusing. Don’t get me started on the word “service”. Or about the difference on a “servicebus” and an “enterprise servicebus”. I seriously have no clue what the difference is between the two. Try searching the internet for it. Or better, don’t. 🙂

    BizTalk is a message broker. It was originally sold as such and later an additional download was offered, which magically made it an “enterprise servicebus”. Like when Word is a text editor, but when you download an additional package, it suddenly becomes a website designer or a spreadsheet. It doesn’t work like that. It’s likely they did this because “servicebus” became a buzzword back in the days.

    Just remember that tools like MassTransit, NServiceBus, etc. can use different transports like MSMQ, Azure Service Bus, RabbitMQ, etc. There’s a difference between MSMQ and ASB & RabbitMQ in that the latter two are centrally located and MSMQ is on every machine. That’s where I made the difference.

    It gets really, really complicated, because everyone uses the terms differently. This is from Wikipedia about RabbitMQ:

    > RabbitMQ is open source message broker software (sometimes called message-oriented middleware)

    And then remember that RabbitMQ also has support for federated exchanges : https://www.rabbitmq.com/federated-exchanges.html

    So why does RabbitMQ calls itself a message broker and Azure Service Bus calls itself a servicebus? That’s why we at Particular Software call them transports and differentiate between federated and brokered transports. Some transports have more features like others. MSMQ & Azure Storage Queues don’t support PubSub natively, ASB & RabbitMQ do. NServiceBus abstracts away these issues and makes sure you can use PubSub on every transport and adds a lot of additional features. Competing Consumer is ‘easy’ for brokered transports, you don’t specifically need a framework like MassTransit or NServiceBus for that .But what about concurrent message processing on a single node? Or retries for transient & non-transient errors? Or reliability for when you process messages from the queue and insert business data into a database, but can’t or won’t use distributed transactions?

    You can all build this yourself and it’s immense fun. But it’ll take an insane amount of time to do it and do it right. I can promise you it’s cheaper to take a servicebus from the shelf.

Click on a tab to select how you'd like to leave your comment

Leave a Reply

Your email address will not be published. Required fields are marked *