Search code examples
language-agnosticmessageservicebus

Why would you use a message based system?


What are the motivations for using a message based system?

I'm seeing a lot about service buses such as NServiceBus and Mass Transit and I'm wondering what the benefits of the underlying methodology are.


Solution

  • There are multiple advantages to using message based systems.

    1. Messages form a well defined technology neutral interface between applications.
    2. Enables loose coupling of applications.
    3. Lots of options for performance, tuning and scaling:
      • Deploy requester and service process on different hardware
      • Multiple requesters sharing single server
      • Multiple requesters sharing multiple servers
    4. The various messaging middlewares implement the common messaging patterns independently from you application.
      • Request/Reply
      • Fire and Forget offline updates
      • Publish/Subscribe
    5. Many of the middleware products handle message transformation (e.g. SWIFT to SWIFTXML).
    6. Many of the middleware products can decompose a single large request into several smaller requests.
    7. They nearly all support multiple platforms.

    Incidentally the two market leaders in this area are IBM with their Websphere MQ and related products, and, TIBCO with their Enterprise Service Bus.