20/11/2020

Case Study – Migrating a Monolithic Application to a Scalable Microservice Architecture

 


resource: www.katalon.com

 

Introduction: 

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.

 

Business Background: 

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.

 

Technical Realization: 

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.

 

Challenge:  

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.

 

Learnings:

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.

For starters, some of the skills you should have:

  • excellent knowledge of Java (OOP)
  • good knowledge of Spring Boot 2 
  • good understanding of source control tools such as Git (Github, Bitbucket, or Gitlab)
  • experience with relational databases 
  • apply good technical practices and contribute to the application architecture with a focus on scalability, maintainability, security, and performance.
  • a college degree that corresponds to the required vacancy and at least 2 years of working experience in Java
  • excellent verbal and written communication skills in English

We can give you a fair amount of great benefits such as:

  • remote work
  • flexible working hours, no overtime policy
  • challenging international projects
  • Private health insurance
  • we are offering an honest, supportive, and friendly working environment
  • knowledge-sharing, transparent and proactive communication among the team are some of our greatest values

 Feel free to apply for the job if you think we are a perfect match!

    For starters, some of the skills you should have:

    • understanding of OOP concepts
    • Knowledge of REST/JSON Web Services and back-office applications using the newest Microsoft stack of technologies including C#, ASP.NET/ASP.NET Core, WebAPI, T-SQL, SQL Server, Entity Framework
    • Good understanding of Javascript, HTML, CSS
    • Good knowledge of GIT
    • Apply good technical practices and contribute to the application architecture with a focus on scalability, maintainability, security, and performance.
    • a college degree that corresponds to the required vacancy and at least 3 years of working experience for Medior/ at least 5 years for Senior
    • excellent verbal and written communication skills in English

    We can give you a fair amount of great benefits such as:

    • remote work
    • flexible working hours, no overtime policy
    • challenging international projects
    • Private health insurance
    • we are offering an honest, supportive, and friendly working environment
    • knowledge-sharing, transparent and proactive communication among the team are some of our greatest values

     Feel free to apply for the job if you think we are a perfect match!

      For starters, some of the skills you should have:

      • A background or qualification in computer science or digital design
      • 5+ years of coding and design experience
      • 2+ years of experience in React
      • understanding of SOLID principles
      • good knowledge of GIT
      • good knowledge of design patterns
      • Good knowledge of UI/UX common practices and standards
      • Webpack
      • SCSS
      • Unit and E2E tests 
      • Experience or motivation to work in Framer Motion

      We can give you a fair amount of great benefits such as:

      • remote work
      • flexible working hours, no overtime policy
      • challenging international projects
      • Private health insurance
      • we are offering an honest, supportive, and friendly working environment
      • knowledge-sharing, transparent and proactive communication among the team are some of our greatest values

       Feel free to apply for the job if you think we are a perfect match!

        Your skills are:

        • Angular 2+
        • Typescript
        • RxJS 
        • HTML5 
        • CSS3

        ...and you may have experience with:

        • Webpack 
        • SCSS, SASS 
        • Unit and E2E tests

        We can give you a fair amount of great benefits such as:

        • remote work
        • flexible working hours, no overtime policy
        • challenging international projects
        • Private health insurance
        • we are offering an honest, supportive, and friendly working environment
        • knowledge-sharing, transparent and proactive communication among the team are some of our greatest values

         Feel free to apply for the job if you think we are a perfect match!

          For starters, some of the skills you should have:

          • excellent knowledge of Java
          • knowledge of Spring Boot 2
          • know how to create automated workflows with Webpack, Gulp
          • good understanding of HTML5 and CSS3
          • good understanding of source control tools such as Git (Github, Bitbucket, or Gitlab)
          • experience with relational databases
          • experience working with microservices
          • AWS or another cloud provider (GCP, Azure, etc.)
          • experience working with Linux/Unix
          • proficiency in standards-compliant and cross-browser compatible code
          • apply good technical practices and contribute to the application architecture with a focus on scalability, maintainability, security, and performance.
          • a college degree that corresponds to the required vacancy and at least 5 years of working experience in Java
          • excellent verbal and written communication skills in English

          We can give you a fair amount of great benefits such as:

          • remote work
          • flexible working hours, no overtime policy
          • challenging international projects
          • Private health insurance
          • we are offering an honest, supportive, and friendly working environment
          • knowledge-sharing, transparent and proactive communication among the team are some of our greatest values

           Feel free to apply for the job if you think we are a perfect match!

            For starters, some of the skills you should have:

            • good programming skills
            • familiarity with API Development (REST, Web API)
            • understanding of OOP concepts
            • a bachelor degree that corresponds to the required vacancy
            • strong proficiency in JavaScript, including DOM manipulation and the JavaScript object model
            • thorough understanding of React.js and its core principles
            • experience with popular React.js workflows (such as Redux)
            • familiarity with specifications of Typescript
            • experience with React Saga
            • good knowledge of HTML5 and CSS3

            We can give you a fair amount of great benefits such as:

            • remote work
            • flexible working hours, no overtime policy
            • challenging international projects
            • Private health insurance
            • we are offering an honest, supportive, and friendly working environment
            • knowledge-sharing, transparent and proactive communication among the team are some of our greatest values

             Feel free to apply for the job if you think we are a perfect match!