Why would you use a message based system?

Garry Shutler picture Garry Shutler · Dec 17, 2008 · Viewed 8.9k times · Source

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.

Answer

James Anderson picture James Anderson · Dec 17, 2008

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.