Biztalk for EAI vs. ESB for EAI Scripts

I'm not very familiar with ESB or Biztalk, and I'm trying to figure out what matters most from an EAI point of view, if you already have Biztalk. As I understand it, Biztalk is a message broker (hub and speaker), and the ESB template is an anti-broker, where the conceptual β€œbus” consists of separate distributed components that communicate with each other in some way. Message brokers essentially represent a single point of failure, not an ESB, where one component does not work, does not destroy the "bus" as a whole. I also understand that Biztalk is monolithic in the sense that messaging, orchestration is closely related and scaling is problematic.

If the script is at hand:

  • Biztalk is already mainly used to run various orchestras based on different files received from third parties.
  • A bunch of embedded user applications that are currently closely associated with the system, such as CRM and payroll, need to be reorganized to abstract these dependencies.

Does it make sense to use Biztalk directly or the Biztalk ESB toolkit to achieve ESB functionality, or does it make sense to use the correct ESB implementation, such as NServiceBus or Service Bus for Windows, which is based on Azure Service Bus. What are the advantages and disadvantages of using Biztalk directly to achieve EAI versus using an appropriate ESB. Will every application depend heavily on Biztalk and is this desirable?

I will leave this as an open discussion, because there is no right or wrong answer.

@StuartLC: Thanks for your reply. I read some of the links you posted, but still haven't gotten a clear idea of ​​whether Biztalk would make sense as an ESB solution and use something like NServiceBus. Both seem to somehow implement the "ESB" pattern. A question that has a cleaner implementation, better development experience and low rise time. My assessment so far (only from pure research) is that yes Biztalk can be used, but it hurts and requires a very specialized developer. set of skills. Latency and scaling are problematic and the fact that Biztalk will eventually be assimilated into the service bus (Azure?) And Biztalk SKU will cease to exist. On the other hand, infrastructure, such as the NService bus, has a relatively low slew time and can be easily picked up by dev. Having good .NET programming skills in general and easily interacting with Biztalk. Given the above, would it still be worthwhile to take the Biztalk route, even if you currently have Biztalk in your home or for future proof, go with a proper ESB such as NService Bus?

+4
source share
1 answer

I believe that many of the components of your open-ended question have already been addressed on SO:

However, IMO is simply a flawed / short-sighted implementation that will lead to a tight connection between applications and endpoints. Easy communication is easily achieved: (even without ESB tools):

One point of failure can also be avoided:

  • Configuring retries and alternate / backups on communication adapters.
  • Redundancy achieved, for example. through server groups and clustering
  • And return using compensation for failed delivery.

IMO Achilles heel when using BizTalk as an ESB is the lack of guaranteed delay, for example. here , which is exarcebated if the BTS falls into a throttling state.

Update

IMO choice comes down to the fact that you control all the systems in your environment.

If you are integrating an internal enterprise consisting of only homogeneous, modern (and mainly SOA and EDA) applications that you have direct control over, MassTransit or NServiceBus will most likely be more than a task and you will increase productivity and increase time.

+6
source

All Articles