Integrations as easy as 1-2-3? Implement an ESB!

Picture of Piotr Karwatka
Piotr Karwatka

Former CTO of Divante eCommerce Technology Company. Open-source enthusiast and life-long builder. Co-founder of Vue Storefront and Open Loyalty. Now gathering engaged communities around new technologies.

Care to share?

If eCommerce solutions consisted of only one system, life of eCommerce owners and managers would be like a dream. But the IT landscape has evolved into a highly fragmented ecosystem consisting of numerous structures.

The main goal of an integrated solution is to increase your revenue potential and reduce your operating costs. To achieve the desired objective – increasing customer loyalty and influencing purchase decisions – you don’t only need to implement systems but also integrate them with each other. Simply put, integrations are a positive investment in what matters most, the Customer Experience.

Don’t miss out on opportunities

On the other hand, integrations are difficult and often unnecessarily expensive. The biggest challenge is to integrate already functioning systems with new ones. If the system is integrated improperly, clients may lose many possibilities:

  • 71% of customers would like to see the current inventory on the website – including the stationary points. Unfortunately, only 32% of stores provide such information,
  • 50% of customers would like to be able to order online – receive offline; less than a third of the stores offer a simplified model of Click & Collect (order online, pick up at the store). Even these stores offer it in the simplest form – shipped from the central warehouse, which doesn’t allow a super fast order processing (which is the highest value of C&C),
  • 13% of customers say they will not be able to store offline if they can’t check the online availability of goods.

Why ESB?

According to the standard approach, we must integrate almost every system with every other. ERP system needs to be notified about current orders from the online shop, B2B system, and send the order statuses. These orders must appear in a CRM system and, in case of modification, you need to create an integration that allows sending notifications in return.

It isn’t surprising that as a result, we have a very dense network, as with any new system the number of connections grows exponentially.


In such cases, it’s worth considering to implement an Enterprise Service Bus. It is a software architecture model used for designing and implementing communication between mutually interacting software applications. Very simply, this mechanism enables format unification of the data that is being exchanged between systems and rerouting communication. For example, you only need to send the order information to one central point and the service bus spreads this messages to all the systems.


How it works?

Divante’s Enterprise Service Bus consists of four components:

  • API – module based on the description of the data creates a generic API that is used to
    send data to the bus. The module implements the authentication of the sender and carries out basic validation of the data structure.
  • Queue – message received by the API is placed in a queue where it waits for free resources. This can control a number of messages which fall into individual systems.
  • Workers – each queue is supported by the so-called workers. These are processes which catch the message from the queue and send it to the appropriate systems. In case of an unsuccessful action on the side of the external system, there may be one of the following responses: an attempt resend, an attempt to send a message elsewhere, destroy the message, or postpone the message to serve later.
  • Flows – this module allows you to configure the message flow through the system. It provides a simple way to determine how the message should be adopted, with which structure, which workers should handle it, and what their logic should be.

Even though it might sound a bit complicated, the data bus simplifies the integrations. Thanks to this approach, the number of integrations grow linearly, not exponentially. What’s more, adding a new system is very simple – all you need to do is to integrate its tail end.

And it means that after implementing the bus, you can develop your platform faster. What’s more, the platform won’t limit your business goals – integrating new modules is now (almost) as easy as a walk in a park.

Read also: Why should you upgrade Magento 1.x to Magento 2.0?

Design complexed eCommerce solutions with our Product Design Team. Contact us >

Published May 20, 2016