Objective: architectural audit and finding solutions for scaling the system of creating online stores with native integration on a large number of marketplaces.
Timeline: July-August 2020
Technology stack: .Net, MS SQL, IIS
Team: 2 architects, a DevOps engineer, a Senior DBA (data base administrator), a supervisor.
In this case, we introduce a vivid example of how successful IT products emerge. It is not always some originally conceived IT project. Often, people create something for themselves, for the private needs of their business, but it turns out to be so convenient that it gains recognition in the market and eventually becomes an independent IT-product.
We were approached by an American company (a clothing store) with the task of auditing their current online store architecture and helping them scale their system.
At the beginning it was an online clothing store, which mainly used various marketplaces for its sales (while in Russia there are not so many marketplaces — the average user would name OZON, Wildberries and Yandex Market, but in the US there are about 20 such marketplaces).
The seller himself keeps his stock of goods up to date. He sets up special connectors (same as "integrations") to connect to external sites. It is necessary to put the entire nomenclature on these sites, learn how to receive orders, deliver them, process payments and keep them up to date, update the assortment, etc.
Wionix had adjusted all the processes so well and conveniently that requests began to come to them to make an online store based on their system. In other words, they themselves have started out as an online store, but created a unique solution: a system where you can launch a store with native integration on a large number of online marketplaces (they have integrated about 15 of them). There is no other such system. And this solution turned out to be very popular.
They were gradually launching such stores, 1-3 stores per month. In fact, their system was designed in such a way that the launch of one store took 7 to 10 days, which means 3-4 stores per month. And suddenly they were requested to launch 100 stores in 3 months.
There was a need to drastically redesign the architecture. They approached us with the following question: how to make it possible to open several dozen stores a month?
Our team consisted of 5 people: two architects, a DevOps engineer, a Senior DBA (invited database expert) and a supervisor. We met all the analytics and architecture-related tasks very quickly; literally in two weeks.
What We Did
We analyzed everything they had done, reviewed the code and provided architectural consulting. We proposed a plan of how to move from their current architecture to a scalable one within six months.
They had their own team of Junior developers who had grown up together with the system and had extensive knowledge of it, but they had no idea how to go beyond that architecture.
In fact, when a new customer came, they just took what was there and reconfigured it, tweaked it, cleaned up the history.
But it was necessary to switch to an architecture where the system natively allows adding new stores. Instead of multiplying separate servers and databases, developers should equip the system with an ability to add stores and users, and allocate access rights. All these steps should take roughly an hour and must be performed by configuring settings.
And we did that.
Then the task was delegated to their developers. And they continued the work. This story well describes the genesis of many IT products, when there is a good idea that originates from the needs of a particular business. But full implementation and development of that idea into an independent product requires a high level of expertise, which is absent within the company. And this issue can be easily solved by outsourcing high-level specialists for a short period of time