Zomato is one of India’s largest consumer technology companies. The restaurant aggregator and food delivery operator provides restaurant information, menus and user reviews, and food delivery options from partner restaurants in over 1,000 Indian cities and towns.
With over 17.5 million customers, 220,000 restaurant partners and 350,000 delivery partners, Zomato deals with data in huge quantities. However, in 2017 Zomato became increasingly aware of the pain points of database management.
“Zomato was expanding at a remarkable pace,” says Abhishek Jain, senior software engineer, Zomato at MongoDB.local New Delhi earlier this year. “We realized that it would be prudent to migrate all our self-hosted clusters to a managed platform, which is when we integrated with MongoDB Atlas. As Zomato and its portfolios kept on expanding, so did our use cases for MongoDB.”
Using features such as index suggestions, geospatial queries and analytics nodes, MongoDB is now the driving force behind many of Zomato’s key operational systems:
-
The Order Tracking system covers live order statuses as well as live locations of delivery partners.
-
The Order Assignment system is one of the most critical components, and one of the most complex.
-
The Order Details system displays items and quantities for each order to ensure smooth fulfillment.
-
The Delivery Partner Expected Earnings feature combines key information such as a rider’s location, their distance from the partner restaurant and customer, and the type of transport used.
-
The Featured Restaurants system is what most people see when using Zomato app. A key marketing tool, it creates bespoke campaigns and offers, and suggests local restaurants to users.
-
The Delivery Partner Onboarding system simplifies the onboarding process by collecting and storing drivers’ names, addresses, driving licenses, vehicle type and more.
Another critical tool, the Delivery Partner Location system, is central to Zomato. With thousands of riders on the streets of India continuously publishing their locations at very high rates, flexible and responsive persistent storage is vital.
“We get hundreds of thousands of requests per minute,” he explains. “We need a database capable of handling this load without any issues or latency, even during extremely high-volume periods such as New Year’s Eve. Again, MongoDB was the answer.”
A final core element is Chat SDK, a central messaging hub that enables customers and delivery partners to stay in contact via email or text message and can include images and video.
“All this data is non-relational, so we need a NoSQL data store that provides strong consistency under heavy read and write workloads,” says Soumil Kanwal, Software Engineer at Zomato. “MongoDB's document-oriented database fits our requirements perfectly.”
He concludes: “We’re in the process of migrating features from other databases to MongoDB and building new features on top of those. MongoDB manages them all very comfortably.”