An ESB is a tool and architectural pattern that largely predates modern microservice architectures. ESBs were used to manage communication in a service-oriented architecture, handling everything from inter-app communication, data transformation, message routing, and message queuing functionality.