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.