When is the use of an Enterprise Service Bus (ESB) recommended?

5

I'm at the beginning of developing a system that provides for communication with some other systems through Web Services. Now our system will be the service provider, sometimes it will be a consumer of external services, always through Web Services.

Is the use of an Enterprise Service Bus (ESB) indicated in this case?

    
asked by anonymous 06.04.2015 / 15:13

3 answers

5

Here are some situations where a service bus is a recommended solution:

  • when three or more applications need to be orchestrated
  • when the services to be merged are external providers over which there is no control
  • when you need to monitor the level of service of external providers
  • when service contract changes (ESB is able to provide standard handling for messages while adjustments are made to fit the new contract)
  • When the architecture provides for receiving, processing, and producing messages, especially when a transactional context is required for messages
  • When there is a need for communication with components and adapters to access legacy applications, which need to be accessed in a standard way

On the other hand, these are some situations where service bus usage is not recommended :

  • When integrations are point-to-point, no need for orchestration
  • When using only one type of protocol, for example only SOAP
  • When the volume of data to be sent by the bus is too large (in this case consider ETL tools and data replication between the databases involved)
  • When there are long-running business processes, best implemented with BPEL or BPMN tools

For the specific case mentioned, it would appear that the use of a service bus is an unnecessary overhead for the project.

Sources:

Enterprise Service Bus

Don ' t use an ESB unless you absolutely, positively need one, Mule CTO warns

    
06.04.2015 / 15:21
0

Apparently you do not need to use a Service Bus, as you have chosen to communicate through Web Services. In any case, to get an idea of how it works and make a more specific test, create a Service Bus in Azure and configure. It's very simple.

Inside the Azure you can find the Service Bus Queues (allows one-way communication); the Service Bus Topics / Subscriptions (allows one-way communication using signatures); the Service Bus Relay (provides two-way communication); and the Event Hubs (provides event ticket and telemetry to the cloud).

For more information, visit the link: link

    
01.09.2015 / 15:53
0

You should use a bus, when you see the need for communication between systems where an integration of one depends on another.

For example: You call a service from a middleware, and that middleware calls other services from other middleware to gather everything and return and give you the answer.

Do you see the need for orchestration right there? it is at this time that you should use an ESB, by layer abstraction and orchestration.

    
02.05.2017 / 19:49