Why do you need an ESB?
At an enterprise level, connection fan-out can present a serious burden on a business service and clients. The diagram below shows the connection fan-out for 2 business services supporting 12 clients. Each service is managing 12 client connections and each client is managing 2 service connections. This is not a scalable design as more services or clients are added.
By adding an ESB, we introduce a routing layer to help manage the connection fan-out.
The benefits of this architecture change:
- The service connection fan-out is greatly reduced; each service now only manages a connection to each node on the bus.
- Each client now has just one connection to the bus, regardless of how many services it uses.
- Overall client update rate increases.
- As the client connection requirements increase, it is simply the ESB that needs to scale, not the business service.
How does it work?
The DataBus is composed of nodes (ideally one per host). The nodes operate as a connection load-balanced ClearConnect service. This means that as new clients connect to the bus, they will connect to the next node in the bus in a round-robin manner. New nodes can be added to the bus, in real-time, to provide more capacity as required. If any node in the bus goes down, existing clients are re-distributed across the remaining nodes.