Announcement Announcement Module
No announcement yet.
Chaining gateways? Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Chaining gateways?

    Is there a straight forward way to chain gateways? If not, what would be a good approach?


  • #2
    Can you elaborate on the question a bit?


    • #3
      I'm referring to pp. 472-473 in the "Enterprise Integration Patterns" book by Gregor Hohpe. The "Chaining Gateways" pattern abstracts the application from other messaging systems to shield from changing messaging technology stacks.

      "We wrap this basic Messaging Gateway with an additional Messaging Gateway that translates the generic messaging API into a narrow, domain-specific API."

      In my case, I'd like to shield the App A from the details of System B:

      App A -> Gateway A -> Gateway B -> System B

      Is there a best practice for implementing this via Spring AMQP or is it nothing more than injecting Gateway B into Gateway A?



      • #4
        You might want to look at Spring Integration:

        One of the main goals of that project is to create a higher level messaging abstraction based on Enterprise Integration Patterns. We have "gateways" and "channel-adapters" (and much more), so for example, you can easily have something like: inbound JMS -> process (transform, route, split/aggregate, etc) -> outbound AMQP

        Of course, the most important "patterns" are Message and MessageChannel themselves. Those address the "generic" gateway that would be at the end of the chain. With Spring Integration, you can send() to a channel, and you can also use a "template" or indeed our *gateway* class for sendAndReceive().


        • #5
          Thanks again, Mark.

          As you've suggested, Spring Integration seems like a closer fit to what I'm looking for. More specifically, the Inbound and Outbound AMQP gateways being developed in the sandbox. Do you have an ETA on these?


          • #6
            We plan to move those adapters from Spring Integration's sandbox to the trunk as soon as the Spring AMQP project itself graduates from a Milestone to a GA release. If that precedes Spring Integration 2.0's GA (circa. early September), then they will be included in that release. Otherwise, they will be available as soon as possible in the 2.x release train. Those adapters are a pretty thin abstraction on top of Spring AMQP itself, where 90% of the action is. Therefore, we should be able to make the adapters available in Spring Integration almost immediately after Spring AMQP goes GA.