Are there any deal breaks for you?
Not necessarily deal breakers but something to be aware of
A client connects to a nearest node, which address it should know beforehand, all communications with all other Cassandra nodes proxied through it.
a. read/write traffic is not evenly distributed among nodes - some nodes proxy more data than they host themselves
b. Should the node go down, the client is helpless, can’t read, can’t write anywhere in the cluster.
Although Cassandra claims that “writes never fail” they do fail, at least at the moment of speaking they do. Should the target data node become sluggish, request times out and write fails. There are many reason for a node to become unresponsive: garbage collector kicks in, compaction process, whatever…
In all such cases all write/read request fail. In a conventional database these requests would have become proportionally slow, but in Cassandra they just fail.
There is multi-get but there is no multi-delete and one can’t truncate ColumnFamily either
Should a new, empty data node enter the cluster, portion of data from one neighbor nodes on the key-ring will be transfered only. This leads to uneven data distribution and uneven load. You can fix it by always doubling number of nodes.One should also keep track on tokens manually and select them wisely.