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.
We use Astra DB to improve our management systems. Storing data has become hassle-free and quite simple. When launching a Cassandra-based cloud application, Astra DB is exactly what you need. In addition to the standard training programs and videos, the extended support and training require significant additional effort to activate and cover which I feel is a bit more tedious task.
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.
We need to be able to process a lot of data (our biggest clients process hundreds of milions of transactions every month). However, it is not only the amount of data, it is also an unpredictable patterns with spikes occuring at different points of time - something athat Astra is great at.
Our processing needs to be extremaly fast. Some of our clients use our enrichment in a synchronous way, meaning that any delay in processing is holding up the whole transaction lifecycle and can have a major impact on the client. Astra is very fast.
A close collaboration with GCP makes our life very easy. All of our technology sits in Google Cloud, so having Astra in there makes it a no-brainer solution for us.
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.
Astra DB might be difficult to understand for people who are unfamiliar with Apache Cassandra. Improving the initial experience for newcomers, as well as offering better documentation and lessons, might be advantageous.
The Astra DB ecosystem may be enhanced by expanding the ecosystem of plugins, integrations, and community-contributed solutions.
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.
Their response time is fast, in case you do not contact them during business hours, they give a very good follow-up to your case. They also facilitate video calls if necessary for debugging.
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!
We also (briefly) considered building in-house. We wanted to avoid complex "Frankenstein" architectures. Combining Pinecone with another NoSQL datastore like DynamoDB would have increased complexity. A single-managed platform (Astra DB) enabled architectural simplicity and strong reliability, allowing Maester’s development team to prioritize high-value, customer-facing features
We are well aware of the Cassandra architecture and familiar with the open source tooling that Datastax provides the industry (K8sSandra / Stargate) to scale Cassandra on Kubernetes.
Having prior knowledge of Cassandra / Kubernetes means we know that under the hood Astra is built on infinitely scalable technologies. We trust that the foundations that Astra is built on will scale so we know Astra will scale.
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.
Database growth planning is less of a concern with Astra, as it scales automatically.
Currently, they lack fine-grained security at the table level. I suspect that will change over time.
If your load has peaks and valleys; Astra enables only paying for Reads/Writes; thus you do not need to pay for large servers to support peaks in load.