Customer Stories / Software & Internet
Careem Scales Its Everything App Services to 50 Million+ Customers Using Amazon DynamoDB and AWS Database Technologies
Learn how Careem migrated to a microservice infrastructure using Amazon DynamoDB.
800+
microservices created
50 million+
customers served
$1,600
in monthly costs instead of thousands
Improved
overall app reliability
Reduced
misconfigurations and deployment issues
Overview
With more than 50 million customers across 10 countries, Careem needed to improve scalability to advance and expand its everything app with critical features and faster performance. Careem’s legacy infrastructure was monolithic, and funneling data to one database caused high latency. Therefore, the company wanted to improve agility and reliability without causing downtime for its services.
The company chose to use Amazon Web Services (AWS) to restructure its database infrastructure as microservices. For example, its solution for driver pings (the ability to trace the location of its drivers) now uses Amazon DynamoDB, a fast, flexible, and serverless NoSQL database service for single-digit millisecond performance at nearly any scale. Careem has built more than 800 microservices using AWS, reduced deployment issues, and scaled its app alongside customer growth.
Opportunity | Using AWS to Embrace Microservice Infrastructure for Careem
Careem launched its ride-hailing app in July 2012 in Dubai. Since then, it has expanded into an everything - a single app capable of many different functions - that offers 12 daily services (including ordering food and groceries and sending money electronically) for customers in more than 80 cities. The ride-sharing service also grew. What started as a team of a few thousand drivers has grown to a company of a few million drivers. The app frequently records location data for the drivers, both while they’re driving and while they’re stationary. With this immense amount of data, Careem needed a solution that would scale with its number of drivers and customers while supporting the company’s growth into an everything app. “We’re getting locations from millions of drivers every few seconds,” says Khurram Naseem, senior director of engineering at Careem. “We needed a scalable solution for so much data, and Amazon DynamoDB was just about perfect.”
The company’s legacy database was built as a monolith. Careem realized that all this data funneling into one database was causing high latency and a lot of downtime when making changes requested by its internal teams. These uptime challenges could affect its customer base, which had grown from thousands of daily riders to millions by 2017. The company had been using AWS services since its inception in 2012, when it migrated from a monolithic database architecture to a microservices database architecture using Amazon database technologies. And to do so, it chose AWS Database Migration Service (AWS DMS), a managed migration and replication service used to migrate database and analytics workloads to AWS.
For its microservices, Careem uses several AWS services in addition to using Amazon DynamoDB. For example, Careem also uses Amazon Relational Database Service (Amazon RDS), a collection of managed services used to set up, operate, and scale databases in the cloud, for most of its workloads. The migration for this use case started with the ride-hailing service, but that was only the beginning of Careem’s journey using AWS. “We have more than 50 teams using AWS services,” says Naseem. “Today, we are virtually 100 percent on AWS and use more than 25 AWS services for analytics, data, and artificial intelligence across our app.”
We’re getting locations from millions of drivers every few seconds. We needed a scalable solution for so much data, and Amazon DynamoDB was just about perfect."
Khurram Naseem
Senior Director of Engineering, Careem
Solution | Scaling to More Than 50 Million Customers Using Amazon DynamoDB
The app collects data from Careem’s drivers, including location data, in Amazon DynamoDB. The company then uses algorithms built in house to find the driver who is best suited for a drive request. Careem worked alongside AWS teams to migrate from MySQL to Amazon DynamoDB and change its database infrastructure. “Different AWS teams were involved as we began to understand how to make improvements,” says Naseem. “We have changed our architecture and introduced roles to manage the volume of Amazon DynamoDB tables, which we have used to save on costs.” Careem has reduced costs for this use case to $1,600 per month from thousands, in part due to a schema-free approach to infrastructure.
Under the previous MySQL architecture, adding a single column or index involved downtime, which affected the entire service. Because Careem has to update its database with information on millions of drivers every few seconds, this downtime quickly added up. Amazon DynamoDB is more scalable in this regard, so Careem can add nearly any number of columns or fields in a particular row with virtually no downtime. “The way we are growing, there is a lot of scaling up because we need to track drivers by many attributes while they drive,” says Naseem. “By using Amazon DynamoDB, we were able to solve the problem of scalability.” One tracked attribute that is especially important in Careem’s operating regions is the ability to match female drivers with female passengers upon request. The company seamlessly manages this additional data, as well as the increasing numbers of drivers and customers, by using AWS.
By creating microservices, the company no longer has to worry about a single misconfiguration or deployment issue impacting the service as a whole. “We have used Amazon DynamoDB and the microservice-based architecture to reduce the number of issues compared with previous years,” says Naseem. This has improved the reliability of the ride-hailing app while Careem continues to expand its product and use AWS to grow it into an everything app. Careem also uses several other AWS services for its everything app, including Amazon Redshift, which offers optimal price performance for cloud data warehousing.
Teams at Careem have gained a better understanding of AWS services through the migration. Employees build their own perspectives by reading documentation and gain more insight by corresponding with experts from AWS, and then they use this knowledge to build up the database infrastructure. “When we start using a new service, we are very confident about talking to the AWS teams and explaining what we want to do,” says Naseem. “We have a lot of training available to help engineers grow and learn.”
Outcome | Continuing to Improve Applications Using AWS
After improving its ride-hailing service and expanding its app, Careem plans to continue introducing new AWS services, such as Amazon GuardDuty, which protects AWS accounts with intelligent threat detection. Data security is vital due to the high levels of data localization in the region. Amazon GuardDuty works alongside Careem’s use of Amazon RDS. The company also plans to create new AWS accounts in different regions by 2025 to comply with evolving residency laws. Careem has grown its business into an everything app on the foundation of microservice infrastructure powered by Amazon DynamoDB. “At Careem, we strongly believe in simplifying the lives of people,” says Naorus Abdulghani, vice president of engineering at Careem. “Using AWS enables us to have access to innovative technology solutions.”
About Careem
Careem is an everything app based in Dubai, serving customers across 10 countries in the Middle East, Africa, and South Asia. It became a wholly owned subsidiary of Uber in 2020 and welcomed investment from e& (formerly Etisalat) in 2023.
AWS Services Used
Amazon DynamoDB
Amazon DynamoDB is a fully managed, serverless, key-value NoSQL database designed to run high-performance applications at any scale. DynamoDB offers built-in security, continuous backups, automated multi-Region replication, in-memory caching, and data import and export tools.
Amazon Redshift
Amazon Redshift uses SQL to analyze structured and semi-structured data across data warehouses, operational databases, and data lakes, using AWS-designed hardware and machine learning to deliver the best price performance at any scale.
Learn more »
Amazon GuardDuty
Amazon GuardDuty is a threat detection service that continuously monitors your AWS accounts and workloads for malicious activity and delivers detailed security findings for visibility and remediation.
Learn more »
Amazon Relational Database Service
Amazon Relational Database Service (Amazon RDS) is a collection of managed services that makes it simple to set up, operate, and scale databases in the cloud. Choose from seven popular engines and deploy on-premises with Amazon RDS on AWS Outposts.
Learn more »
More Software & Internet Customer Stories
Get Started
Organizations of all sizes across all industries are transforming their businesses and delivering on their missions every day using AWS. Contact our experts and start your own AWS journey today.