Can you really build the whole social media application on cassandra? Sure, it requires longer to setup, however it scales far better. Correct?

Please list the situations when Cassandra ought to be used.

Cassandra is being used at Digg, Facebook, Twitter, Reddit, Rackspace, Cloudkick, 'cisco' etc. therefore the response to the first question could be yes.

Rapid version from the list that describes the situations in when Cassandra ought to be used.

  • You'll need the chance to include new nodes to yout cluster, without any down time.

  • You'll need a more potent data model (column oriented) than simple key/value

  • You'll need the chance to possess both synchronous and asynchronous replication for every update.

yes, Cassandra is actually highly used and showing its performance at Digg, Facebook, Twitter, Reddit, Rackspace, Cloudkick, 'cisco' etc. and it is really scalable nosql database having a small code base and memory consumption so its is going to be great option for large 24-7-365 web-projects as well as for reference you can observe at

http://www.datastax.com/dev/blog/why-does-scalability-matter-and-how-does-cassandra-scale

http://www.slideshare.net/scode/scaling-with-apache-cassandra/

To briefly summarize Brewer's CAP Theorem, your database will provide you with for the most part two from the following three qualities:

  • Consistency
  • Availability
  • Partition Tolerance

A relational database for example SQL Server or MySQL provides you with consistency and sacrifices either availability or partition tolerance. A distributed database for example Cassandra will sacrifice consistency to provide you with both availability and partition tolerance.

So in a nutshell, use Cassandra if you do not need immediate consistency and therefore are Comfortable with eventual consistency.