The entire project was developed with microservice architecture: the software is divided into various services, each of which performs a separate task. All interaction between the systems occurs via http.
We developed the option for the shopping cart to receive and store orders, and also synchronised its interaction with other microservices to fulfil purchasing rules. Let's say, for example, the user purchases the "choose your own number" service. According to purchasing rules, if they buy a second number, the first will be cancelled. The shopping cart developed by our employees will be able to check user data, interact with other microservices and monitor compliance with purchasing rules.
Sim cards can also be bought through the new service. In addition to individual users, customer service employees will be able to use the service at points of sale. They can act as intermediaries and process the sale of the card for the customers.
One challenge during the implementation was that the service needed to guarantee data integrity in the distributed system. We have encountered similar cases; therefore, we were able to find a solution in a short period of time. Our solution was as follows: as the data is stored in different places,we decided to ensure its updating and punctual flow from one service to another by making swift changes to the code.