An enterprise service bus (ESB) is a software architecture that allows for the integration of enterprise applications and services. A good analogy for an esb is to think of it as a router; providing the connections between enterprise applications.
Another good way of visualizing an enterprise service bus might be to think of it as a series of switches that decide where to send a message to based on the implementation, business policies or message contents.
If you are aware of how computing hardware actually works, you can picture the interactions and communication occurring across a physical bus like it would in modern computers.
Why Use An Enterprise Service Bus
Since an enterprise service bus is a middle layer communication tool there are a number of great features that might exist.
- Message Bus: an architecture for encouraging applications to work in a decoupled way.
- Connectors: most enterprise service buses come with predefined connectors that can do a lot of the heavily lifting.
- Publish and subscribe: a lot of the esb available can coordinate services in an asychronous fashion meaning users don’t necessarily need to sit and wait around.
- Configuration: a lot of the enterprise service buses available can do a lot of things through configuration vs code.
An esb is really common for companies that are practicing service oriented architectures (SOA). In general, microservices do not use an enterprise service bus .
What can an Enterprise Service Bus do?
The enterprise service bus provides a way to loosely couple systems and provides a securable, scalable, and cost effective way to enable real-time data exchange among many systems.
A service provider puts its data on the enterprise service as a message which all enterprise systems can consume. A number of systems can subscribe to the same data and transact on it as necessary.
Examples of Enterprise Service Buses
There’s a number of popular Enterprise Service Buses available on the market. As we integrate more and more applications together, I expect we could see even more.
- IBM App Connect
- Microsoft Azure Service Bus
- Mule ESB
- Apache Camel (Open Source)
- Apache ServiceMix (Open Source)
Wrapping it Up
If you are connecting more than four systems, it might make sense to start looking for an enterprise service bus.