Ayende @ Rahien

It's a girl

RavenDB Success Stories: Codealike

I just run into the following case study from Microsoft:


We were amazed by how simple it was to embed RavenDB into our Windows Azure application. This gave us a huge advantage in getting our solution to market in just six weeks.

Federico Andres Lois
Co-Founder, Codealike



Posted By: Ayende Rahien

Published at

Originally posted at


Rik Hemsley
03/13/2014 03:22 PM by
Rik Hemsley

This is great to hear, but even better would be some kind of tutorial on how to do what they did with RavenDB - i.e. to get it into worker roles in Azure, store in 'Windows Azure Drives' ... They claim they developed their app in under 3 weeks, but I can imagine it could take a long time to figure out how to get this part of the app configured so I assume they already had some experience.

Federico Lois
03/13/2014 03:49 PM by
Federico Lois

Hi Rik,

The first version of Codealike (that has been up and running for 1 year from 2012 to 2013) was hosted on Azure Worker Roles. From the concept of the service to the implementation and deploy it took 8 weeks. 2 weeks to find out what to build and 6 weeks to develop the first MVP that could provide users some value.

We were able to have RavenDB up and running in a single day on a worker role (first time developers at the time on Azure). After that a Microsoft Azure swat team provided us some critical hints on how to squeeze performance from it.

Then we moved into an entire VMs with stripped disks setup after they were stable on Azure. This one alone was a huge improvement in performance.

The amount of high frequency data that we track has given us, the Azure Team and even Oren a couple of headaches with some humongous fan-out indexes :)

In the last 6 months we redesigned a big part of the backend to handle the growing number of concurrent users. Each developer can generate quite a big amount of data and sending that to us constantly during the day. We then have to index, sift through that, learn from it and construct derived information that is relevant to you. Most of the data we handle is time-series with annotations and we had to device a couple of tricks to handle it.

In Oren’s own words when doing a review a couple of months ago: “RavenDB in version 2.5 is not designed to handle this case.” but it is actually handling it pretty well.

We are actually waiting for RavenDB 3.0 to be stable enough to start a redesign of the entire data layout and processing because some of the things that made sense at the time are no longer true now that we are starting to support other IDEs like Eclipse.

For example, just the focus function (we will post about it soon) requires us to process a huge amount of data per user. And at the moment we are doing it hourly, but we are aiming at doing it in realtime. Another one is the dispersion pattern where you can see at a glance how you worked in a single visualization. https://twitter.com/Codealike/status/442782945204391936/photo/1

Other insights from the 2013 data: https://codealike.com/insights/

Comments have been closed on this topic.