The reason to start this project lied in the necessity to turn a monolithic cryptocurrency exchange system into the microservice-based architecture that will provide high processing speed, increased stability, and advanced scalability to improve our client's business performance.
Only 5 Minutes
needed to accomplish fast fiat processing.
increase of the total security level achieved.
The essence of the project was creation of a high-speed online marketplace for cryptocurrency buying and exchange that shows updates on rate every 30 seconds. The interface had to be easy to navigate and user-friendly in general, so the clients can exchange currency fast and easy. Also, the system should provide the possibility of API-based external services integration and 24/7 client support. Now, the system has microservice architecture with an improved scalability. The system's intended users are traders and people who want to exchange money for cryptocurrency and vice versa, thus, they needed a place for fast and successful fiat processing.
The core problem that we needed to solve for the client was to make fundamental changes in their single-code monolithic application. The original system was written in PHP and had a significant disadvantage for the company. On the one hand, a web application with such architecture is difficult to maintain and support as it took a significant amount of time for a new developer to become entirely familiar with the code. On the other hand, there was a high probability of error occurrence when updating the code and the system in general. Also, a minor malfunction of some part of the system had resulted in the service shutdown. In addition, it took too much time on processing user's request because of using the initial SQL database that uploaded a lot more information than needed. Thus, it was decided to create new architecture with beneficial microservices.
The first technical challenge we had faced in terms of this project was Cassandra NoSQL database integration. The reason why NoSQL database type was chosen lied in the necessity to significantly increase the service working speed to accelerate its reaction on cryptocurrency market changes, and to make the system as comfortable for its users as possible. The peculiarity and, at the same time, difficulty of working with Cassandra was the necessity in prior precise database structure planning. This approach brings some complexity if there are changes in the client's specification requests and features. When working with Cassandra we had to analyze and think through as many requests as possible. Also, we had to create entity copies of the code parts to make sure we cover different requests. By the successful implementation of this database, we had managed to fasten the service reply speed so it takes seconds instead of minutes as before.
The next issue that we can name as a challenge was the BitGo wallet implementation into the system. This bitcoin e-wallet is one of the most popular software programs for performing all kinds of operations with the bitcoin currency. This wallet is beneficial because of its high security level, backup copy, and the possibility of using virtual tunnels. Despite all the benefits, our team had faced a number of difficulties with this wallet integration. The first problem was its lack of comprehensive documentation on the system integration. The second problem we've faced was the absence of the test mode for checking functionality performance. Because of these issues, we had to top up the wallet with real money for testing. In terms of the e-wallet integration, our team was responsible for successful clients' authorization and user management, and we did it the best way possible.
Our client had received an entirely restructured system based on microservice architecture. In total, we had created 13 microcervices that interact with each other via Google RPC. The main microservices were responsible for orders receiving, their processing and matching (Pro-Rata), placing orders on external exchange markets in case if there are none in the system. Among these microservices there was the one responsible for managing and supporting established customers in the renewed system. What we did for our client was creating a stable trouble-free running system. Also, we had increased the system's data processing speed, and with the help of microservices implementation we made possible to scale the system with no fear of damaging its functionality. The technical part of the project was solely our responsibility, so we gave our client a transformed and vastly improved architecture. In addition, we had managed to increase the general security level with successful implementation of multi-factor authentication, IP address checking, email and phone number validation, and more.
Light IT team has the highest level of technical expertise, professional communication, and an overwhelming passion for bringing awesome web apps to our industry. They fit snugly in our culture, never afraid to propose improvements and enhacements regarding the project. They helped to bring unique features to life and the security level was increased many times.