Migrating a monolithic application to microservices

Solution Sneak Peek

  • Implemented microservices type architecture
  • Helped the client increase their service offering
  • Salvaged the project
  • Assisted with the data migration

Tech Stack

  • .NET Core
  • C#
  • Angular

About The Tour Guy

The Tour Guy (TTG) is a company that specializes in providing travelers with unique experiences. They try to go above and beyond what traditional tour operators offer people by offering something memorable. This can be visiting a restricted area, visits at night, visits before opening, meeting the locals, and many other activities.

Migrating Existing Applications to Microservices

Business Problem

When The Tour Guy was in the startup stage, they had a very limited amount of tour offerings, services, and customers. As the company began to grow they decided to create a web application where customers can book tours, make payments and browse all of the services that were offered. Initially, they approached a different service provider to create the product, but they were disappointed with the end-result. 

TTG approached Softwarium to salvage the project and create an app that will satisfy all of their business requirements. 

Technical Challenges

The monolithic architecture of the application was not scalable. If we tried to add certain functionality, this would have repercussions on other parts of the application. What made the situation even more complicated was that so many service providers worked on the architecture and each one was undoing or redoing what was done by the previous company. This caused chaos, significant delays, and wasted resources. 

Softwarium was tasked with making sense of what was done by previous service providers and implementing the right architecture that will allow TTG to scale their application.

Migrating a Monolithic Application to Microservices

Solution

After conducting research into the application architecture, we determined that it would be more efficient to start from scratch than try to fix all of the existing problems. We organized a meeting with TTG and explained both the business and technological benefits of starting anew. It was agreed that Softwarium would start working on developing the new .NET Core application and TTG on its end, would start migrating data and continue to update the previous version, and try to support new functionality. 

After a couple of months, the new architecture was ready and we maintained the monolithic approach, as requested by TTG. Softwarium used its experience and know-how in application development by creating a monolithic architecture where all of the features each worked independently of each other. The new domain driven design would separate all of the features into separate components. Also, the front-end and back-end now worked independently of each other. In other words, the new architecture was something in between a monolithic and microservice architecture we started with a monolith and then gradually split and migrated to microservices, which proved to be much better in terms of scalability. When Softwarium presented the new version of the application to TTG, they were very impressed and decided to add additional developers to the project to speed up migration to the newest version. Another four developers were tasked with maintaining the old version until the migration was complete.

Migrating from Monolith to Microservices

Results

Softwarium created a .NET Core application for TTG from scratch which allowed them to add the necessary functionality and services to continue growing their business. For example, thanks to the new Microservice-based application, more scalability was added to manage vendors, restaurants, and new features that can increase revenue. 

It was particularly important that all of the work was done on time because TTG is based in Italy, one of the hardest-hit countries by the COVID-19 pandemic. Customers were looking to change or cancel their reservations and having an application where they could do this themselves really alleviated a lot of the burden and saved a lot of time and resources.

You may also like

Solution Sneak Peek

  • Implemented microservices type architecture
  • Helped the client increase their service offering
  • Salvaged the project
  • Assisted with the data migration

Tech Stack

  • .NET Core
  • C#
  • Angular