Here is the general schematic - requests (transactions) coming from users enter the diagram at the upper left, and responses are returned at the lower left. The "back ends" (on the right side) communicate with systems at other sites using CORBA (CommonObjectRequestBrokerArchitecture) or MqSeries. The cross-connections represent e.g. requests that don't need to go to the back ends, or requests that have to cycle through the network more than once before being returned to the user.
Since the back end processing is asynchronous, and may actually be batched up at the processing sites, transactions should be identified by a unique ID, stored on a database, and removed from the data stream, so that they can be related to the responses coming back from the back ends at some later time. At this point the transaction information can be retrieved from the data base, and the transactions reinserted into the stream going right-to-left in the bottom line.
The system also employed a number of caches, for performance and for consistency.