I’ve been meaning to look into this for some time to get my head around these fancy new databases and find out when I should consider using them. I’ve come to the conclusion that you generally wouldn’t use an object/key-value database on it’s own. You have your main relational database for important data that is definitely required, and then you can have multiple key-value databases to do a lot of the firehose-data grunt work across multiple servers.
A setup might look like:
You need your relational database for things that a user absolutely has to have every request (e.g. you always need to access the users login details).
However for things that don’t really matter (like posts, tweets, comments) then you can use a key-value store because who cares if all the comments/tweets etc aren’t listed every request as long as you show something and you know it’s going to be correct at some point.
I believe this is how reddit works it has postgres server(s) and then multiple cassandra servers for submissions. I assume it’s similar for facebook except, I think, they use mysql & cassandra.
For your next web app I’d start with your usual relational database of choice. Once you get to the stage when you have the performance/scalability issues to deal with then you might take a bigger look into the NoSQL/key-value stores.
Some interesting links:
(facebook & reddit use this)