Most companies need some form of integration; that is, they need to send information to and receive information from other systems. One example is taking orders on a web site and sending the order information to an order fulfillment system, then receiving shipment information back so that the customer can view a status on their order. Another example is inventory updates to a commerce site. And a third is obtaining current information about which products are in which brick-and-mortar stores to make the customer’s shopping experience more pleasant.
Many will say it’s easy to write a messaging system, and it is. But it’s quite difficult and expensive to write and maintain a messaging system that is fast, reliable, and scalable. MethodFactory recommends Microsoft’s BizTalk Server for exchanging information if you need 100% up-time, if you absolutely cannot allow a message to be lost, or if you need to be able to accommodate millions of messages per day. Microsoft wrote BizTalk with predominantly these features in mind.
Of course, a bad implementation of BizTalk can easily slow it down. For example if you send 2 million inventory updates through a BizTalk solution, and then open a database connection for each item, and you’ll soon find that one inventory message is still processing when the next one comes in. As with anything, expertise in how to use a tool makes the difference between success and failure. We have found BizTalk to have remarkable performance. For example, a 2 million row file can be processed in 20 minutes or less. BizTalk allows you to add more servers when you need them. So as your need for processing more data comes in you can add more servers to do the work. This increase in servers, often referred to as scaling, can be done by adding either more database servers or more BizTalk servers.
Another business scenario that we have had to address when consulting with our clients, is ensuring that data is not lost due to typical, but predictable system-to-system communication failures. In an eCommerce world losing a customer’s order often results in unhappy, non-returning customers. The customer’s order can be converted into a message that is sent from one system to another (kind of like email for applications). If BizTalk is part of the solution, when BizTalk receives the message it stores the message immediately, then once it knows the order is saved in its message-box, it tells the sending system it got the message. After it is safely stored, BizTalk can then process the message (“order”) into the destination Order Processing System. If the order were to generate an error while processing, the order would not disappear, it is safe and sound in its original format in the BizTalk database. This technique if properly implemented allows BizTalk to make the ‘No loss of Data’ claim.
Drawbacks to using BizTalk can include the price and the learning curve. At MethodFactory we maintain that re-writing and maintaining a system as good as BizTalk would cost more than BizTalk itself. Learning how to implement BizTalk requires a paradigm shift and some hands on experience. As with any system that is written by someone else, it can do a lot for you, but you have to understand it so you can take full advantage of its features.
In summary, one BizTalk server can effortlessly handle tens of millions of messages per day. If your need for processing grows larger than that, rest assured you can just add more servers. The security of knowing that your system is speedy, reliable, and scalable from the start should relieve the concerns over the cost. Take it from us, BizTalk is worth considering for a messaging and Enterprise Application Integration platform.