Untappd launched in 2010 as a part-time project run by only two people. Growth was slow at first, but suddenly skyrocketed, growing from 300,000 registered users to 750,000 in a short period of time. As exciting as that growth was, Untappd wasn’t entirely prepared for it.
Untappd co-founder, Greg Avola, says...
We had a lot of outages, and a lot of issues that we had to keep the site up.
It was clear that the site would need to scale with its user base, but the Untappd team lacked the expertise to go it alone.
From its exhaustive beer cataloging and rating to its social location-based check-in features, Untappd handles a lot of data. Database performance can make or break the user experience, and Untappd’s initial setup wasn’t scaling the way they needed it to.
When we first started Untappd, we used traditional MySQL as our primary data store and didn’t know much about non-relational databases. Once we started to grow at the rapid rate that we are, we had to expand into that field immediately.
Going from a rigid schema on a relational database to a free-form document structure like Mongo took some getting used to, but their API is built in JSON, so moving to Mongo was a relatively easy choice.
We're also still on MySQL, but a lot of our major processes that occur now off our Mongo infrastructure, so we're running a dual setup.
ObjectRocket helped Untappd increase performance by moving some processes to MongoDB—for example, their "Friend Feed." This feature is the first interaction point for many users, requiring it to be high quality and very fast, but social feeds are notoriously difficult to scale out.
We were looking at query times for our Friend Feed from anywhere between three seconds to seven seconds. Together, we were able to decrease that all the way down to less than a second. Since then, we do a lot of our heavier queries on Mongo, which helps us significantly when it comes to high traffic periods.
ObjectRocket and Rackspace have allowed the Untappd team to stay small while growing their application.
When we started out we really had no knowledge of infrastructure and backend. Our Rackspace team has been like an extension of our team. We've been able to grow with the help of Rackspace, and that’s really made a difference in our application.