Tapingo is an app for iPhone and Android that enables customers on college campuses to order food and beverages from shops in their neighborhoods. To provide efficient, trouble-free service, the company partners with local merchants to ensure they know how many orders to expect and which items will sell. Tapingo’s customers include college students, college campuses, and local merchants, providing an ecosystem that encompasses the entire shopping experience, from ordering to inventory management and pickup. The company is based in San Francisco, Calif., and Tel Aviv, Israel, and operates on campuses across the US and Israel, including New York University (NYU) and the University of Southern California (USC). Tapingo launched its flagship app in 2012 and is funded by Khosla Ventures and Carmel Ventures.
The rise of the app in everyday life has been a game changer for consumers, not least when it comes to shopping. But there’s been a gap in the market: ordering from local restaurants in real time, without lags of an hour or more between order and pickup. Tapingo is trying to change that. “Why isn’t it easier to buy food on the go, without having to wait to order, pay and pick up?” Asks Udi Oster, CTO and Vice President of Research & Development at Tapingo. The Tapingo team wanted to transform the way food is ordered and picked up, so they built a solution that is contextually aware and that integrates with the operations of local restaurants, using college campuses as a beach head.
To build an effective solution, the company had to face a few technical challenges: handling orders at peak times, minimizing lines at restaurants, and helping merchants manage inventory. During peak orders, Tapingo gets 75 orders a minute, which could slow the system and create lines for pickup. Inventory management is also a challenge. If a coffee shop gets 200 orders in an hour and runs out of espresso beans, the shop can’t call 200 people to change their orders. “Everything in the app must be ultra-real time, especially inventory — data integrity is super important,” Oster says. “Once the merchant informs us that they’re out of something, we inform our users. It’s a challenge to achieve high performance while managing inventory in real time.”
The company started out with a hosting and DNS service, building a sophisticated architecture that was meant to ensure stability. However, the system experienced high latency, sometimes as high as 50 seconds. “It was over-complicated and far too expensive for the resources we had at the time,” Oster says. Eventually, the company suffered an outage. “We got some harsh feedback on Twitter, posts saying ‘Tapingo just ruined my life,’” Oster continues. “We needed a system that was stable and always on.” The company needed a stable environment that enabled fast, personalized requests and responses, and started looking into cloud providers.
Why Amazon Web Services
After months of research, Tapingo decided to migrate to Amazon Web Services (AWS). AWS provided the scalability, reliability, and computing power that the company needed in order to provide real-time service to its customers. Another factor in the company’s decision to move to the AWS Cloud is that AWS supports Python (on which Tapingo is written) and offers a robust API that lets developers make changes to the environment without having to go through the UI.
The company rewrote its architecture to run on AWS, and then relaunched its app — in one day. “We decided to give up all the useless complexity that we had and just make it as simple as possible,” Oster says. In the newly launched Tapingo app, a student selects a restaurant, orders off the menu (which is updated in real time to identify only the items available), and pays using a credit card, student card, or PayPal. The restaurant is immediately notified of the order, and estimates a pickup time for the user. Users can also schedule orders to be ready for pickup at a certain time each day.
Tapingo uses 40 Amazon Elastic Compute Cloud (Amazon EC2) instances for the app’s communication servers, the website, order processing and cache management. The scheduling system and PCI-compliant payment environment both run on Amazon EC2 instances as well. Orders and transactional data are stored in MongoDB databases on EC2.
The company uses Amazon Redshift as its analytical database and data warehouse, and for billing. Tapingo’s system transfers data from MongoDB and Amazon RDS to Amazon Redshift to enable the company to easily run reports and use predictive analysis. The company mines its data stream to predict what restaurants should stock and when they should staff up—and currently predicts about 30 percent of its orders every day. “We are creatures of habit,” Oster says. “Generally, people have between three and five items that they buy at a certain restaurant, and that’s it. Now that we can leverage the AWS Cloud, we have the computing and storage power to store all that data and predict consumer behavior.”
Orders are queued using Amazon Simple Queue Service (Amazon SQS). The company created a regional queue on the Tapingo side that sets the order flow for merchants based on each restaurant’s profile and needs. For example, if a café can only take 25 coffee orders per hour, Tapingo automatically adjusts the queue accordingly. The virtual queue is updated in real time on Tapingo, so that users know what to expect in terms of wait times. The company also maintains a queue for the monitoring service Amazon CloudWatch, which kicks off a phone call in case of delays or problems. Tapingo also uses Amazon Route 53 as its DNS service.
The company tackles its inventory management issue by using Amazon ElastiCache to cache communications between its users and its app. “Almost all the communications between Tapingo and the user are in ElastiCache,” Oster says.
Tapingo was able to use AWS to solve its immediate problems: scalability for handling orders at peak times, queuing to minimize lines, and robust database services to manage inventory. But using AWS also enabled a significant reduction in latency, which enabled Tapingo to expand internationally. By rebuilding its architecture on AWS, Tapingo saw latency fall from 50 seconds to 30 milliseconds. Shortly thereafter, Tapingo expanded from Israel to the U.S.
Using AWS also freed Tapingo from steep operational expenses. “We no longer have to spend money on making sure the rooms are cool enough,” Oster says. “Instead of having one IT guy who’s assigned to AWS, each and every one of the engineering team knows how to use AWS. AWS is seamless and easy, and very simple to scale.”
Being able to launch quickly — and avoid hardware expenses — enabled Tapingo to expand onto more campuses. “As a startup, it’s a huge advantage to not have to figure out how many physical servers you need to build your server architecture,” Oster says. Because it uses AWS, the company has quintupled its users over the last year. “We didn’t have to change anything from migration to now — we just loaded more servers. We changed their size, made them more CPU-efficient, and loaded another instance or two, and that’s it.”
Oster credits the AWS API with giving Tapingo engineers the flexibility to make changes as needed. “The fact that we can do everything in the API shortens the time to market dramatically – it’s a terrific advantage,” Oster says. “Using AWS allows us to be very agile.”