• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Abhishek Tanwar

I build web & mobile experiences

  • HOME
  • BLOG
  • CONTACT ME
  • DISCLAIMER & COPYRIGHTS
You are here: Home / Patterns / Enterprise Integration Pattern Part 5 of 7 [Message Router]

Enterprise Integration Pattern Part 5 of 7 [Message Router]

July 7, 2013 by Abhishek Tanwar

Message Router

This is another pattern in enterprise integration patterns. The concept is quite simple but the implementation has lots of complexities. Lets see. Message router just adds another filter in the chain which is responsible for reading the common header data for a message and route it to a specific receiver application based on the result.

Now the concept looks very simple isn’t it! We can all read the message header and put some logic in any programming language and send resend it to another receiver application.

Actually, Message router implementation depend on various factors:

1. Content Based Routing

This is very basic form of routing. The filter in the chain reads the content of the message [only agreed header information as information is everything as of now] and decides based on pre-determined logic as to who should be the intended receipt of this message. Putting around a static implementation looks good to go of an idea but coming up with a configurable application which can do this is a real piece of work and would require lot of innovative thinking.

2. Scatter and Gather Message Routing

This is also one of my Fav! This looks at the requests inside a message and then scatter the request to multiple receiver applications to perform the operation. Once they are done with the request, the filter gathers all the response and send then collated to the sender application. This is also quite heck of a job to come up with the architecture and implementation of it.

3. Recipients list Routing

This is very similar to our email in outlook. We type who all the message should go and then the outlook application just sends it all the ones marked.

4. Split Routing

This along with Scatter and Gather pattern are used most often in today’s integration world. Most application integrating with each other differ in term how to interpret the data. Some interpret in bulk and some in single unit of data. Splitting the data and sending it to one system and gathering the data and sending it back to the sender application is what works today! There are many middle ware applications that support this but I still think that there is lot to be done.

All the above patters are supported by one or the other middleware platforms but there is lot more to do in this world of the Enterprise integration as more and more complex systems try to integration to either simpler or complex systems.

Hope you like the write!

Share this:

  • Facebook
  • X

Like this:

Like Loading...

Filed Under: Patterns, Tips & Tricks, Uncategorized Tagged With: enterprise integration, integration pattern, message endpoint, message pattern, message router, message translator, messaging

Primary Sidebar

  • Behance
  • Email
  • Facebook
  • GitHub
  • LinkedIn

Popular Posts

How To Integrate React in JSP Application
SaaS, PaaS, IaaS
XQuery highlighting in Notepad++
Standard Design Patterns – Applied to JAVA
XQDT Installation on Eclipse JUNO

Categories

  • Building APIs
  • Building Mobile Apps
  • Building Web Apps
  • Coding Challenges
  • Extensions
  • Fullstack
  • Patterns
  • Tips & Tricks
  • Uncategorized
  • VSCode

Tags

2022 vscode extensions Abstract Factory alienware amazing vscode extensions apple challenges coding coding-challenges Design Patterns dota2 dota2 items dynamic web service call dynamic webservice invocation enterprise integration express flex helpful vscode extensions how to implement mfa in nodejs increasing productivity using vscode integration pattern macro message channel message endpoint message pattern message router message translator messaging mfa offline action processing offline actions in struts pipes and filters PRG in struts react Steam struts System Emulator threads in struts utilities vscode vscode customization vscode extensions vscode productivity extensions xquery xquery 1.0 xquery design principles

Recent Posts

  • 15+ VSCode Extensions To Improve Your Productivity
  • Productivity and Quality Extensions for ReactJS in VSCode..
  • My goto VSCode plugins for 2022…
  • How to enable MFA for your application in Node.JS?
  • Structuring Express Application – How I do it?

Categories

  • Building APIs (8)
  • Building Mobile Apps (1)
  • Building Web Apps (7)
  • Coding Challenges (3)
  • Extensions (1)
  • Fullstack (6)
  • Patterns (8)
  • Tips & Tricks (41)
  • Uncategorized (43)
  • VSCode (2)

Tags

2022 vscode extensions Abstract Factory alienware amazing vscode extensions apple challenges coding coding-challenges Design Patterns dota2 dota2 items dynamic web service call dynamic webservice invocation enterprise integration express flex helpful vscode extensions how to implement mfa in nodejs increasing productivity using vscode integration pattern macro message channel message endpoint message pattern message router message translator messaging mfa offline action processing offline actions in struts pipes and filters PRG in struts react Steam struts System Emulator threads in struts utilities vscode vscode customization vscode extensions vscode productivity extensions xquery xquery 1.0 xquery design principles

Archives

  • August 2023 (1)
  • March 2022 (1)
  • February 2022 (1)
  • November 2020 (1)
  • April 2020 (2)
  • May 2019 (1)
  • April 2019 (1)
  • March 2019 (1)
  • December 2018 (1)
  • July 2018 (4)
  • June 2018 (3)
  • March 2018 (1)
  • May 2016 (1)
  • December 2015 (1)
  • May 2015 (1)
  • April 2015 (2)
  • March 2015 (1)
  • December 2014 (2)
  • November 2014 (2)
  • October 2014 (1)
  • August 2014 (2)
  • July 2014 (1)
  • April 2014 (1)
  • March 2014 (1)
  • February 2014 (2)
  • January 2014 (1)
  • December 2013 (4)
  • November 2013 (4)
  • October 2013 (3)
  • September 2013 (4)
  • August 2013 (2)
  • July 2013 (5)
  • June 2013 (9)
  • May 2013 (6)
  • April 2013 (2)
  • March 2013 (2)
  • January 2013 (1)
  • November 2012 (2)
  • HOME
  • BLOG
  • CONTACT ME
  • DISCLAIMER & COPYRIGHTS

Copyright © 2025

%d