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.

We are looking for a Senior Blockchain Developer with 5+ years of experience who will join our team.

Your core skills are:

  • Proven experience as a Blockchain Developer, with a strong focus on JavaScript
  • Proficiency in JavaScript, including frameworks such as Node.js, React, or Angular
  • Solid understanding of blockchain concepts and cryptographic principles
  • Experience with smart contract development and deployment on platforms like Ethereum or Hyperledger
  • Extensive knowledge of Object-Oriented Programming (OOP), including principles, data structures, algorithms, and design patterns
  • Familiarity with Docker, Kubernetes, and cloud services to support modern application development and deployment
  • Demonstrable experience with software engineering tools such as Git for version control, Maven for build automation, and tools for unit and integration testing
  • Comfortable working within a Scrum Agile framework to deliver high-quality software in iterative cycles

Requirements:

  • Minimum of 5 years of relevant experience
  • Degree in Computer Science or a related field
  • Proficiency in English with excellent communication skills
  • Strong problem-solving and analytical abilities
  • Effective communication and presentation skills

What We Offer:

  • Remote work opportunities with flexible hours
  • No overtime policy
  • 25 vacation days annually to recharge and relax
  • Challenging international projects to expand your horizons
  • Private health insurance including regular medical check-ups
  • Supportive and friendly work environment that values honesty
  • Knowledge-sharing, transparent, and proactive communication within the team

If you’re ready to take on exciting challenges and grow your career with a supportive and innovative team, we’d love to hear from you!

    We are looking for a Senior Full Stack Developer with 5+ years of experience who will join our team.

    Your core skills are:

    • Excellent knowledge of Java and JavaScript programming language
    • Excellent knowledge of Spring, Spring Boot, Hibernate
    • Excellent knowledge of Angular or React
    • Proficiency in both relational (e.g., MySQL, PostgreSQL) and NoSQL databases (e.g., MongoDB)
    • Good understanding of Microservice architecture
    • Exposure to Docker, Kubernetes, and cloud services is beneficial (AWS or Azure)
    • Extensive OOP knowledge - principles, data structures, algorithms, and patterns
    • Demonstrable experience building modern software using engineering tools such as Git, Maven, unit testing, and integration testing tools
    • Experience working in Scrum Agile methodology

    Requirements:

    • A minimum of 5 years of relevant experience
    • Degree in Computer Science or other relevant field
    • Excellent verbal and written communication skills in English
    • Strong problem-solving and analytical skills
    • Effective communication and presentation skills (written and verbal)

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

    • Remote work opportunities with flexible hours
    • No overtime policy
    • 25 vacation days annually to recharge and relax
    • Challenging international projects to expand your horizons
    • Private health insurance including regular medical check-ups
    • Supportive and friendly work environment that values honesty
    • Knowledge-sharing, transparent, and proactive communication within the team

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

      We are looking for a Senior iOS Developer with 5+ years of experience who will join our team.

      Your core skills are:

      • Excellent knowledge of iOS SDK (Objective-C and Swift) and XCode
      • Extensive OOP knowledge - principles, data structures, algorithms, and patterns
      • Demonstrable experience building modern software using engineering tools such as Git, Maven, unit testing, and integration testing tools
      • Experience working in Scrum Agile methodology
      • It would be beneficial to have experience with Android and Flutter

      Requirements:

      • A minimum of 5 years of relevant experience
      • Degree in Computer Science or other relevant field
      • Excellent verbal and written communication skills in English
      • Strong problem-solving and analytical skills
      • Effective communication and presentation skills (written and verbal)

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

      • Remote work opportunities with flexible hours
      • No overtime policy
      • 25 vacation days annually to recharge and relax
      • Challenging international projects to expand your horizons
      • Private health insurance including regular medical check-ups
      • Supportive and friendly work environment that values honesty
      • Knowledge-sharing, transparent, and proactive communication within the team

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

        We are looking for a Senior .NET Developer with 5+ years of experience who will join our team.

        Your core skills are:

        • Excellent knowledge of .NET (.NET Core and ASP.NET)
        • Excellent knowledge of SQL server
        • Good knowledge of JavaScript and frameworks such as React and Angular
        • Good understanding of Microservice architecture
        • Extensive OOP knowledge - principles, data structures, algorithms, and patterns
        • Exposure to Docker, Kubernetes, and cloud services is beneficial
        • Demonstrable experience building modern software using engineering tools such as Git, Maven, unit testing, and integration testing tools
        • Experience working in Scrum Agile methodology

        Requirements:

        • A minimum of 5 years of relevant experience
        • Degree in Computer Science or other relevant field
        • Excellent verbal and written communication skills in English
        • Strong problem-solving and analytical skills
        • Effective communication and presentation skills (written and verbal)

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

        • Remote work opportunities with flexible hours
        • No overtime policy
        • 25 vacation days annually to recharge and relax
        • Challenging international projects to expand your horizons
        • Private health insurance including regular medical check-ups
        • Supportive and friendly work environment that values honesty
        • Knowledge-sharing, transparent, and proactive communication within the team

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