Definition

enterprise service bus (ESB)

An enterprise service bus (ESB) is a middleware tool used to distribute work among connected components of an application. ESBs are designed to provide a uniform means of moving work, offering applications the ability to connect to the bus and subscribe to messages based on simple structural and business policy rules.

As such, it's a tool that has use in both distributed computing and component integration. The best way to think of this tool is to visualize it as a set of switches that can direct a message along a specific route between application components based on message contents and implementation or business policies.

Enterprise service bus vs. microservices

The ESB has often been talked about as a way to effectively implement and manage SOAP-based architectures, like traditional service-oriented architecture (SOA), but ESBs represent a much different workflow strategy than may be found in the more decoupled approach associated with microservices.  

Unlike microservices -- or similar strategies that mediate the application programming interface connections between components, but don't establish workflows -- an ESB is the center of application workflow. It is, in effect, a message queue that handles information exchanges throughout the application.

An ESB does not dictate whether components that use the bus are local to it or remote, nor does it enforce any specific requirements for programming languages. Instead, it acts to unify the various ways in which components can receive or send information to other application elements.

How an ESB works

Benefits of an enterprise service bus

Because an ESB architecture controls the way that work moves, it makes it easy to change components or add additional components to an application. Because an ESB sees everything, it also makes for a convenient place to enforce security and compliance requirements, log normal or exception conditions and even handle transaction performance monitoring.

An ESB also provides load balancing in which multiple copies of a component can be instantiated to improve performance. It can also often provide failover support should a component or its resources fail.

Why use an ESB

Problems with an enterprise service bus

The challenge in the ESB concept is there is no single accepted standard for features or behavior. Although it can be argued that an ESB's primary function is to act as a message bus that steers messages between applications or components according to a policy language, over time, the term has been used to describe everything that supports workflow in some way.

Oracle, for example, places nearly a dozen middleware tools in the ESB category, but those tools may feature any number of the ESB functions listed above.

However, steering messages according to policy language is often widely accepted as a function that separates ESBs from other middleware tools. Still, products are generally promoted by linking them to concepts and features buyers are aware of, so it's critical for prospective users to clearly define what their business needs are, and then validate the features of their ESB candidates against those needs.

This was last updated in February 2017

Next Steps

Enterprises can manage applications using Talend ESB and its open source version, Open Studio for ESB.

Continue Reading About enterprise service bus (ESB)

Dig Deeper on Migrating from ESBs to microservices

PRO+

Content

Find more PRO+ content and other member only offers, here.

Join the conversation

1 comment

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

What do you find are the biggest misconceptions when it comes to the enterprise service bus?
Cancel

-ADS BY GOOGLE

File Extensions and File Formats

SearchSoftwareQuality

SearchCloudApplications

SearchAWS

TheServerSide.com

SearchWinDevelopment

DevOpsAgenda

Close