One of the most challenging tasks my dev and I were given while working at Hanover Saffron Creative was to develop a middleware. Before delving into e-commerce I did not even know what a middleware was.
A middleware is a piece of software that connects disparate computer systems and allows them to talk. Usually, they talk exchanging XML files, but they can also communicate with CSV or some other proprietary data element.
Before using a middleware we would just develop single integrations, according to each client’s needs. However, as we mainly worked within the jewelry industry, the integrations we developed were aimed at integrating three EPOS systems with our bespoke platform, Magento or other CMS. Therefore it really made sense for us to adopt a middleware.
There are three main reasons that convinced us to move forwards:
1- The middleware helps us simplifying the communication. There is no need for multiple requests or different communication, all data go into the middleware and all information are then passed from the middleware to the e-commerce platform, resulting in a much cleaner exchange.
2- The two systems are able to work independently. So for instance, if the e-commerce platform is down for whatever reason, this does not compromise the communication. Data just queue up in the middleware until the communication connection is working again.
3- All information about the integration are kept safe in one place, making upgrading and backing up a lot easier. Not only for a single project, but especially when doing so at the same time on multiple projects. As there is no custom code to go directly onto the e-commerce platform, the middleware results to be the most efficient solution.
Furthermore, we had the opportunity of creating a bespoke dashboard to make sure both us and the client could easily monitor the status of the communication and errors, at any given moment. If the information sent to the middleware is incorrect we have an alert and can then act on it – this also means that the incorrect data are not sent to the website, preventing errors.
Last thing worth mentioning is that a middleware offers also the opportunity of switching to different revenue model, with the option of setting a price for time (sort of a monthly or yearly license) or even a price for each middleware request (data communication).
Sounds all pretty cool to me.