Case Study: High Load Messaging Service for a Mobile Gaming Company
Back to cases

High load messaging service for a mobile gaming company

Android app development and migration to Golang microservices unlocked the scalability and improved resilience of the gaming-and-chat applications.

High load messaging service for a mobile gaming company
High load messaging service for a mobile gaming company

    Client and challenge

    Our customer is a startup that created iOS and Android native apps combining real-time multiplayer gaming with a messenger. In these apps, people can play and at the same time communicate with friends one-on-one and in group chat rooms or make new friends in public chat rooms. Players can also participate in tournaments to top the leaderboards. The catalog of curated multiplayer games now contains more than 50 games (including Pool, Draw Together, Sea Battle, Ocho, Hold’em, Ludo, etc.).

    As the number of users and their message history were growing, the customer started experiencing operational challenges related to the server-side and the performance of an Android native app. To scale and deliver new features faster, the company decided to replace the monolith server-side written in the Dart programming language with microservices. The customer’s team also needed an admin panel to maintain the app more effectively.

    Apart from the server-side migration, the customer wanted to add new functionality to the Android client app and resolve issues such as bugs, crashes, and slow rendering.

    The engineers at EffectiveSoft joined the client’s team to:

    • write lightweight microservices using the Go programming language (also referred to as Golang)
    • create an admin panel for managing all microservices
    • participate in the further development of an Android app.
    • Client

      Plato
    • Country

      USA
    • Domain

      Mobile gaming
    • Solution

      Microservices, Android app
    • Outsourcing model

    • Technology

      Golang, Android

    Solution

    Microservices in Golang

    Our team examined the code, planned the migration, and iteratively decomposed the app’s back-end into microservices to minimize risk and follow agile principles. One of the trickiest parts, the data migration, was also thoroughly planned, prepared, tested, and finally performed without downtime. As a result, the team created a serverless back-end with more than 20 microservices, each responsible for its own domain.There are services for user profiles, inventory, media (the images that users upload), etc.

    All the microservices are deployed in AWS in containers fully managed by the Amazon Elastic Container Service (Amazon ECS). Terraform was used to model the AWS infrastructure.

    Admin panel in Angular and TypeScript

    The team also created a front-end layer for microservices–the admin panel. It is a simple internal developer tool for fast navigation and management of all microservices in one place. In the admin panel, team members can access
    any microservice and set up items, configuration settings, version control, monitoring, diagnostics, etc.

    The combination of Angular framework and TypeScript code makes the admin panel easy to maintain and extend with minimal engineering time, as every developer can add functionality to the panel.

    Android native application

    While working on the Android app, an engineer at EffectiveSoft fixed stability issues and improved the app’s quality and performance. As the app evolved, he contributed to new functionality (Private Chat Group, Tournaments, InApp Purchases, etc.) and worked on tight integration with native C/C++ libraries. This integration allowed implementing such app features as:

    • running JavaScript (JS) games
    • game-client communication via JS – Java bridge
    • video and voice chats.
    If you are searching for a reliable mobile app development vendor, turn to our experts.

    Result

    Our engineers have been working as part of the customer’s team for almost 4 years.

    After migration to microservices:

    • the time to market shortened as it became easier to develop, test,
      and deploy the app
    • the app’s resilience improved as independent communicating
      services are easier to change, maintain, and scale.

    The work on stabilization, optimization, and advancement of the Android client app resulted in:

    • a higher crash-free rate – from 95% to 99.7%
    • a consistently high frame rate for users with a lot of data
      on the screen
    • organic growth of the app’s audience
    • revenue generation from in-app purchases.

    Tech stack

    Contact us

    Our team would love to hear from you.

      Order an IT consultation

      Fill out the form to receive a consultation and explore how we can assist you and your business.

      What happens next?

      • An expert contacts you shortly after having analyzed your business requirements.
      • If required, we sign an NDA to ensure the highest privacy level.
      • A Pre-Sales Manager submits a comprehensive project proposal. It may include estimates, timelines, lists of CVs, etc., for a particular situation.
      • Now, we can launch the project.

      Our locations

      Say hello to our friendly team at one of these locations.

      Join our newsletter

      Stay up to date with the latest news, announcements, and articles.

        Error text
        title
        content
        View project