Cassandra excels in a broad range of applications -- especially if you understand its data model and write your applications accordingly. It's an excellent choice for time-series data, and a poor choice for application queues. It performs the best if you can simply record history and compute from it, rather than going back and editing or deleting things a lot.
Oracle NoSQL Database is well-suited for you if your data formats are not consistent, if you have limited hardware resources, if you higher data throughput (whether the database is on the cloud or running locally), and if you don't need a declarative query language to maintain a standardized schema of your data. If you need reduced data redundancy and require ACID compliance, you are better off finding an SQL database solution.
High Availability - we utilize the data replication features of Cassandra. This enables us to access our data even when several nodes have gone down
Data Locality - our architecture combines Cassandra storage nodes and computation nodes in the same machine. This enables us to utilize data locality and limit expensive network IO to read data.
Elasticity - Cassandra is a shared nothing architecture. Nodes can be added very easily and they discover the network topology. As soon as a node has joined the Cassandra ring, the data is redistributed among the existing nodes and streamed to it automatically.
Data-model flexibility. Unlike RDBMS solutions, Oracle NoSQL does not restrict you to a predefined set of data types.
Ability to Handle an Increased Amount of Traffic. As Oracle NoSQL can process queries much quicker than Oracle Database, Oracle NoSQL is able to respond to a lot more queries in the same amount of time.
Data-model simplicity. In SQL-oriented databases, there is a learning curve in learning the relationship between databases, tables, rows, and keys. On the other hand, Oracle NoSQL's key-value based storage is much easier to get the hang of.
No Ad-Hoc Queries: Cassandra data storage layer is basically a key-value storage system. This means that you must "model" your data around the queries you want to surface, rather than around the structure of the data itself.
There are no aggregations queries available in Cassandra.
Fewer analytical functions to choose from. When compared to Oracle Database, there is significant difference in the amount of built-in analytical functions.
Eventual data consistency. It is not guaranteed that a write or delete query will be immediately visible for subsequent queries.
Data redundancy. As there are no mechanisms that insure data integrity, users are more likely to have redundant data across their documents.
I would recommend Cassandra DB to those who know their use case very well, as well as know how they are going to store and retrieve data. If you need a guarantee in data storage and retrieval, and a DB that can be linearly grown by adding nodes across availability zones and regions, then this is the database you should choose.
Apache Cassandra has the best of both worlds, it is a Java based NoSQL, linearly scalable, best in class tunable performance across different workloads, fault tolerant, distributed, masterless, time series database. We have used both Apache HBase and MongoDB for some use cases which were within hadoop setup and JSON (JavaScript Object Notation) document store respectively, but given the overall factors favoring Apache Cassandra, it is a technology choice for multiple platforms!
The open source version of Cassandra is only suggested for learning the basic concepts and play with its core features. Unless you really want to invest a lot in your developers and architects knowing every detail of Cassandra, I prefer the DataStax enterprise version. Although the license cost is relatively high, I think they it is worth it. I'm thinking about the support, the monitoring tool OpsCenter, and the integration of Solr and Spark (for data analysis).
Cassandra didn't fully replace our old and traditional relation database Oracle. In addition, it opens another door for us to deal with some special business use cases that NoSQL database can do better in a more feasible and efficient way.
We pay less for computing resources, as Oracle NoSQL databases respond quicker than our previous SQL databases.
Our database administrators and software developers do not need to worry about "data massaging" and can focus on perfecting application logic.
Oracle NoSQL has built-in integration to other Oracle products, so we didn't not need to spend money on building custom integrators or higher additional developers.