Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,125 | Comments: 45,492

filter by tags archive

RavenOverflow - building a StackOverflow clone with RavenDB

time to read 1 min | 128 words

Another in our series of videos of customer interactions. This time, we take a look at the challenges involved in building a RavenDB powered Stack Overflow site. I think you’ll find it very interesting.

Building StackOverflow clone with RavenDB

In this webcast Ayende works with Justin on modeling a StackOverflow website clone with RavenDB. The topics discussed in this 1hr video are:

  • Map/Reduce indexes
  • Modeling tags
  • Root aggregates
    • Metadata
    • Active tags
    • Facets
    • The suggest feature
  • Performance:
    • Built-in caching
    • Lazy loading
    • Aggressive caching
  • RavenDB profiler

The new RavenDB beta docs: http://docs.ravendb.net

The project we are talking about: https://github.com/PureKrome/RavenOverflow


Demis Bellot

Interesting to see how this compares with my Redis StackOverflow mini clone I created over a year ago at: http://www.servicestack.net/RedisStackOverflow/

I found Redis was a good fit for this as the entire Redis repository fits into 1 class: https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/RedisStackOverflow/RedisStackOverflow.ServiceInterface/IRepository.cs

Best thing about using Redis is you rarely need to ever cache since its so fast!

Phillip Haydon

Watched this at work today, it's great, it cleared up quite a for things i didn't fully understand about RavenDB.


public static IList ToRandomList(this IList source, int numberOfItems) { if (numberOfItems <= 0) { throw new ArgumentOutOfRangeException("numberOfItems"); }

btw, maybe uint better instead int?


Random question - what is that little stop sign next to your page refresh button in google chrome?

Alexei K

Great video, but is there any ETA for the update on the git repo?


Very interesting and encouraging demonstration of Raven's capabilities, but I think the tool will always be effective and easy to use in the hands of its creator. I'd love to read about all these cases when someone hit a wall trying to use Raven for some task - performance limits, unexpected difficulties and side-effects, unforeseen use cases and quirks - you know, everything that you didn't expect and that has blown into your face and then how you dealt with that.

Ayende Rahien

Rafal, That is why we are doing those customers videos.


Hi Ayende, I know this is off topic. But with the re-resurgence of NoSQL databases, it is getting harder to think of scenarios under which I would want to use a relational database.

If you had full control over the design, can you now think of cases when you would want to use a relational database?

Ayende Rahien

Paul, I am not a real good person to ask that question, you do realize that? Maybe for heavy dynamic reporting, OLAP stuff, etc.


What keystroke do you use to show Resharper templates (like add new class) in Solution Explorer?

Justin Adler

@Alexei K - heya mate :) The git repo is mine (right now) and literally a few hours after Ayende hit the stop button, I jumped on a plane with my family and hit the beach for a well deserved break.

I'm back at work today (read => no kids == I have energy and can actually turn on a computer) so i'll be updating the repo on git hub tonight :)

@ScottH - whoa! this got on your radar! Totally awesome-sauce :)

And big ups to Ayende for doing this, of course :) :)

Micha Schopman

I would love to see how you keep document values synchronized between multiple documents where each document contains the denormalized same values and you are doing updates (or deletes) on those values.

I have a specific modelling case where I just can't seem to figure out how to achieve this because the document's presented are personalized and targetted for each visitor, and the information presented in the document changes alot so the result would be that all documents are changed constantly.

This also seems the case in StackOverflow where vote changes would mean that all documents with summarized vote information should also changed.

Ayende Rahien

Micha, You can either link (and then Include) that data, or you can just update it. I am not sure that I understand the problem

Comment preview

Comments have been closed on this topic.


  1. RavenDB 3.5 Whirlwind tour: I need to be free to explore my data - 4 hours from now
  2. RavenDB 3.5 whirl wind tour: I'll have the 3+1 goodies to go, please - 3 days from now
  3. The design of RavenDB 4.0: Voron has a one track mind - 4 days from now
  4. RavenDB 3.5 whirl wind tour: Digging deep into the internals - 5 days from now
  5. The design of RavenDB 4.0: Separation of indexes and documents - 6 days from now

And 11 more posts are pending...

There are posts all the way to May 30, 2016


  1. The design of RavenDB 4.0 (14):
    05 May 2016 - Physically segregating collections
  2. RavenDB 3.5 whirl wind tour (14):
    04 May 2016 - I’ll find who is taking my I/O bandwidth and they SHALL pay
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats