
How Yottaa Uses MongoDB
We’re big MongoDB fans here at Yottaa. We’ve been using it in production since we launched and it’s been serving us great. We thought it might be nice to share a bit about how we’re using mongo and why we love it so much.
How Yottaa Works
The following diagram illustrates the overall architecture of Yottaa.
<< ARCHITECTURE DIAGRAM >>
When you visit www.yottaa.com, you’re using a Ruby on Rails app backed by MongoDB (it’s our only database). That app is responsible for visualizing all of the data we collect about websites. This all happens in real-time, there’s no nightly tasks that roll up data and we don’t cache any of the displays you see. Everything is rendered in real-time. We do this so that as we collect data, it is available to our visitors as soon as it’s ready.
The parts of Yottaa you don’t see are actually the biggest part of our system. We maintain dozens of machines around the world that run web-browsers against your website. We have a number of different tests we run and they run at different intervals ranging from every few minutes to a few times a day. When a test completes, the agent send that data to the DPU using an HTTP POST with the test results encoded as JSON.
These servers generate the bulk of our load. The data collection system processes current