To avoid the problems inherent with an archtiecture based around a Global ESB, a peer-peer ESB network can be created. In this scenario, each ESB routes directly to the most appropriate ESB for final delivery of the messages. The challenge becomes one of managing this configuration..
The diagram shows the use of a
registry to maintain the ESB configuration. The configuration for
services directly associated with each ESB is stored in a local
area within the registry. Information providing the location of
services on other ESB's is then maintained in a shared central
For any given request, the ESB will first attempt to resolve it in the local. If that fails then the shared central area will be consulted.
The registry information may be stored centrally, it is however, beneficial to create a network of replicating registries so that each ESB has direct access to configuration information on the local network.
Implementation of this solution is easier if the ESB's are all of the same type, however, it only adds a small additional complexity to the content-based routing (CBR) to enable it for a heterogeneous environment.