Social Mobile Application Re-engineering and Cloud Migration
Designed to transcend virtual boundaries, the application serves as a facilitator for meaningful interactions and real-life engagements within communities.
USA
3 months
Lifestyle & Social
2x DevOps Engineers
1x Back-End Developer, Solution Architect, UI/UX
IT Staff Augmentation
App Re-Engineering
DevOps & Cloud Services
KOTLIN
SWIFT
KOTLIN
SWIFT
NODE.JS
EXPRESS.JS
AWS
AWS S3
CLOUDFRONT
AWS ELASTICACHE
AMAZON AURORA
TERRAFORM
BITBUCKET
After a successful application launch in the UAE market, our client began expanding their audience globally and faced scaling challenges. The app's backend was deployed only in the UAE and was unable to scale, resulting in performance issues for users in the US, which jeopardized the success of their team's efforts.
This situation required seasoned software development experts who could resolve infrastructure limitations and ensure stable app performance worldwide. This is how our client connected with the OTAKOYI team.
Their team showcases impressive energy, flexibility, and problem-solving skills. They genuinely care about the project and pay attention to detail, timelines, and costs. They are great to work with, and even though their country has been at war, they have remained professional, kind, and honest.
We began by offering CTO-as-a-Service to conduct a comprehensive technical audit of the existing native applications, backend services, and database. This audit produced a prioritized list of issues and led to the development of a roadmap to synchronize future work with marketing and other ongoing activities, ensuring the process remained uninterrupted.
We also integrated the Sentry tool into the system for error detection and monitoring. During the initial run, the system identified approximately 10,000 errors, particularly critical payment and subscription issues. Fortunately, many of these errors were repetitive across different users, allowing us to address them more efficiently.
Our team decided to divide the application into nine distinct modules and reconfigure them. Previously, all configurations were stored in a single MySQL table, which was a bottleneck. After separating the modules, we prioritized and rewrote them using a new architecture involving DynamoDB, Lambda, and API Gateway.
For each module, our engineers developed a new database schema, migrated some part of the data from MySQL to DynamoDB, set up data synchronization, created API endpoints, established communications with third-party services, and removed obsolete code from the old backend application.
Performance and scaling issues often require significant changes, but they can be prevented with thorough business requirements analysis. A solid discovery phase allows the engineering team to choose a technical stack that meets all scaling needs. Scaling is essential for social applications today, and monolithic frameworks aren't the best choice. We recommend proper planning to avoid future problems, a task best handled by architect-level engineers.
When the US audience attempted to use the app, high latency from the UAE data center resulted in app failures. To ensure the app operated efficiently both in the UAE and the US, we implemented a multi-region migration strategy. This approach required changes to the backend services and significant adjustments to the infrastructure.
The application backend services were replicated across multiple regions, and the application API services were containerized using Docker images. This setup enables efficient auto-scaling on demand, along with load balancing.
Our team also migrated a single MySQL instance to an Amazon Aurora MySQL DB cluster. This cluster includes a Global Aurora RDS setup with additional read replicas and the capability to add more replicas as needed. Global Aurora RDS allows for keeping data up to date in multiple regions with high availability.
Redis, a high-performance in-memory data store, handles transient data and provides fast access to frequently accessed information. This reduces the load on the database and supports the stateless architecture by managing session states and caching application data effectively.
Migration to a managed Redis cluster enables sharing application cached data between regions with high availability. These changes ensure users have the best performance regardless of their location.
We considered sharding the database and placing a data center in the US to ensure that local users had the best possible performance.
We have a proven track record of building high quality solutions for customers all over the world.