Cassandra: A highly available and scalable database
March 15, 2019

Cassandra: A highly available and scalable database

Anonymous | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Cassandra

We use Cassandra as the NoSQL database for our use cases. We stream a lot of API data into this database and rely on the availability it gives us. It has proven to be consistent, which we use to our advantage. Cassandra can distribute data across multiple machines in an app-transparent manner, thus helping us to expand it on demand.
  • Cassandra is a masterless design, hence massively scalable. It is great for applications and use cases that cannot afford to lose data. There is no single point of failure.
  • You can add more nodes to Cassandra to linearly increase your transactions/requests. Also, it has great support across cloud regions and data centers.
  • Cassandra provides features like tunable consistency, data compression and CQL(Cassandra Query Language) which we use.
  • The underlying medium of Cassandra is a key-value store. So when you model your data, it is based on how you would want to query it and not how the data is structured. This results in a repetition of data when storing. Hence, there is no referential integrity - there is no concept of JOIN connections in Cassandra.
  • Data aggregation functions like SUM, MIN, MAX, AVG, and others are very costly even if possible. Hence Ad-hoc query or analysis is difficult.
  • Highly available and scalable database. Hence highly reliable in the organization for data.
  • Good performance - low latency and great throughput with varying workloads.
  • Maintenance and monitoring need investment and do not work great out of the box.
DynamoDB is good and is also a truly global database as a service on AWS. However, if your organization is not using AWS, then Cassandra will provide a highly scalable and tuneable, consistent database.
Cassandra is also fault-tolerant and good for replication across multiple data centers, which you get in DynamoDB as well.
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.
You should be very clear where you want to use Cassandra because there is no referential integrity (JOIN) in Cassandra. You have to model data based on how you want to query it, hence what use cases it can be used for should be considered carefully.

You can use it where you want to store log or user-behavior types of data. You can use it in heavy-write or time-series data storage. It is good in retail applications for fast product catalog inputs and lookups

Cassandra Feature Ratings

Data model flexibility
Deployment model flexibility