Case Study – Migrating a Monolithic Application to a Scalable Microservice Architecture
The migration from a monolithic application to a microservice architecture itself is heroic. So that is why before making a switch to microservices, you should thoroughly understand the concept of microservices, its features, and why there is a need to transit to this architecture for your organization. That is why we present to you the project we worked on in collaboration with our Swiss partner, Tatoshi AG.
Tatoshi AG was running a Java Application that was providing backend-services for their mobile Bitcoin wallet. At that time they provided several functionalities including business logic for the mobile application and services for accessing data from the blockchain. As the business grew, the application needed to scale, depending on the usage of the app. That is the reason why the company decided to make use of the auto-scaling capabilities of a cloud service provider.
From our perspective, microservices are quite versatile, which means they allow the usage of different technologies and languages. Microservices can be independently tested and deployed, in other words, they work well with agile methodologies. Not only that, but they are reliable and highly responsive. You can clearly define modules and with added simplicity, developers can better understand the functionality of a service.
Throughout the whole process, we learned how to control the number of microservices that are being managed, since the more microservices that exist in one solution, it is more challenging to manage and integrate them. Therefore microservices require skillful developers who can easily find their way around them.
Microservices are super cool if you need handling a lot of data and requests – the scalability is horizontal where you can add more machines and get the things done.
On the other hand, microservices can be expensive, hard to understand if the project becomes big, which is unnecessary for smaller projects.