As part of our work on the development of the Shopsys Framework, we devote considerable time to the analysis of current trends in ecommerce software development. One such innovation in this field is the microservice architecture, which we have been exploring for a while.
Microservices architecture is the opposite of the monolithic approach in creating software architecture. Most traditional ecommerce platforms have a monolithic architecture. It means that they are composed in one piece and components within them are interdependent and interconnected. Microservices architecture is a sophisticated version of modular architecture, the difference being that microservices, unlike modules, can be standalone applications.
Microservices are supposed to function independently and are connected to each other using defined and mostly versioned APIs. In principle, each component should perform one business function. What is important to keep in mind is that the architecture of microservices is not a technology itself. It is rather an architecture pattern that should be tailored to each individual case. This approach isn’t a new development, and there are already many implemented projects that have adopted this type of architecture (Alza.cz, Mall).
Why do CTOs and Product Managers in ecommerce businesses find the microservices architecture so attractive? First of all, each microservice can be developed independently and deployed independently, which can remedy some of the problems related to the high complexity of large ecommerce systems. In practice, a newly employed person in a development team does not need to learn about the entire system, but can quickly start working on a specific microservice. Additionally, it is also easier to scale the whole system and its deployment. Each microservice can be written in a completely different programming language that best suits the implementation of a specific function, additionally preventing organization from incurring so-called technical debt.
Let us now turn to some of the other factors that come up in when considering microservices. In the past only large companies chose microservices architecture, mainly because of organizational scalability and because they could pay the big costs associated with its orchestration. Because the orchestration is becoming more and more accessible, this architecture makes sense now even for mid-size ecommerce development teams. At the same time, such an approach is not consistent with small ecommerce development teams, where it can be likened to using a sledgehammer to crack a nut. It’s also important to keep in mind that behind every piece of code in each microservice looms a complicated environment (see a picture of slide ‘The Microservice Iceberg’ took during presentation on code.talks).
For now we’re giving this approach the green light in the upcoming release of Shopsys Framework. You can find two microservices supporting product search using Elasticsearch. In the coming months, we will collect feedback on the use of this architecture in our system from our own developers as well as from the dev teams of our partners and clients. Based on this experience we will make a decision sometime in October to decide how we want to incorporate microservices architecture in Shopsys Framework.