In Chapter 1, Getting Started, we discussed that the need for enterprise integration was evolved to solve the problem of intercommunication between heterogeneous systems: how will they share data, how will they understand other systems' data, how cross-cutting concerns across applications will be handled, and so on. In the previous chapter, we covered one of the aspects, that is, how the systems will exchange data. Channels provide a logical unit over which data can be dropped off for other interested applications. However, it introduces the next set of challenges: what if the format of data is not understandable by other modules, or what if the rate of producing a message versus the rate of consuming it is different? Let's take an example; an RSS feed needs to be fetched from the Internet and put in a database for reporting, as well as on a mailing system to send out mails about the availability of new items. What challenges does it throw?
The RSS feed is in...