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: 08 | Comments: 18

filter by tags archive

OR/M suitability

time to read 2 min | 227 words

A few days ago, I run into this tweet:


My answer to that is composed of two parts.

People usually think that I am being facetious when they ask me when they should use NHibernate, and I answer: “Whenever you are using a relational database”. I am not, I am quite serious in that regard. Well, there is a small subtext here in which I assume that you are talking about OLTP rather than reporting or other BI activities.

The reason for that is quite simple, NHibernate (and other OR/Ms, I guess) is doing a lot to make working with RDMBS easy. To try to assume that you can do better than that is… quite a challenge, shall we say? I have seen quite a few people try, and I have seen very few get something reasonable working. I have seen no one that has been served well by that decision when you sit down to make the ROI.

Now, the second part of the answer is that I am not sure that Twitter, as I would design it, would make much use of a relational database. Twitter seems to be ideally suited for a hierarchical database, rather than a relational one.


Paul Wilson

I really love this answer, with the second part being the clincher!


Heh, in case of Twitter I think I could go without any database. Who would be insane enough to keep a database of all that babbling?

Arne Claassen

Given, part 2 of your answer, what's your recommendation for a hierarchical database?


"is doing a lot to make working with RDMBS easy"

Would it be possible to provide a list of these things? I can figure out a few, but I imagine you could come up with a more complete list. It would be great to use as reference/ammo when trying to get management/fellow developers' buy in.

Ayende Rahien


Too complex to answer. I would probably would want to research that a bit before making a decision, or writing my own.

Comment preview

Comments have been closed on this topic.


  1. Concurrent max value - 4 hours from now
  2. Production postmortem: The case of the memory eater and high load - 3 days from now
  3. Production postmortem: The case of the lying configuration file - 4 days from now
  4. Production postmortem: The industry at large - 5 days from now
  5. The insidious cost of allocations - 6 days from now

And 5 more posts are pending...

There are posts all the way to Sep 10, 2015


  1. Find the bug (5):
    20 Apr 2011 - Why do I get a Null Reference Exception?
  2. Production postmortem (10):
    14 Aug 2015 - The case of the man in the middle
  3. What is new in RavenDB 3.5 (7):
    12 Aug 2015 - Monitoring support
  4. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats