From the very beginning ESOOKO wanted to create a system that would immediately be capable of handling 50 000 users, so it was decided to work with microservices. We can readily increase the number of microservices in accordance with user behaviour, thus regulating the load on the system as a whole. The system needs to be scalable and this architecture is a great solution for achieving that. Without any doubt, another challenge in application development is Transactions features. It is essential to implement these properly and answer the key questions of where do the transactions come from, how are they processed and how does the seller receive their income? Firstly we considered using PayPal, but since they have changed their business model and no longer accept new companies, the final decision was made to go with Stripe. PayPal and Stripe both have similar pricing (2.9% + $0.30 per online transaction) and both support invoicing and recurring payments, but Stripe offers a deeper feature set because of superior developer tools and has an excellent reputation within the software development community. The challenge for us was that Stripe supports only 35 countries and each country has its own legal boundaries, which means not everyone can become a seller. To cut a long story short, it was necessary to go through a lot of live chatting with Stripe representatives and discuss every specification for each country, to ensure that it is possible for residents of each country to become a seller.