Apache Cassandra

Apache Cassandra is a column-family NoSQL data store designed for write-heavy persistent storage in Python web applications and data projects.

Apache Cassandra project logo.

Apache Cassandra is an implementation of the NoSQL database concept. Learn more in the data chapter or view the table of contents for all topics.

Python with Cassandra resources

Cassandra is commonly used with Python for write-heavy application demands. The following tutorials walk through several of the helper libraries that can be used to interact with Cassandra, with and without web frameworks such as Django.

How Companies Use Cassandra

These resources are written by engineering teams at organizations that have large scale Cassandra deployments. The posts cover topics such as monitoring, scaling and usage with billions of records.

  • How Discord Stores Billions of Messages talks about the evolution of Discord's very large scale message store system from a MongoDB instance to Cassandra for storing messages in a distributed, replicated cluster.

  • Monitoring Cassandra at Scale explains how the Yelp engineering team uses Cassandra to complement their MySQL and ElasticSearch instances. The post does a nice job of enumerating the warning signs to monitor and provides a short example of an issue with replication that could be caught by their approach.

  • How Uber Manages A Million Writes Per Second Using Mesos And Cassandra Across Multiple Datacenters shows why Uber needs accurate real-time data at large scale to make their driver and passenger operations run properly. The post goes into the overall architecture they use including cluster size, tolerable latency and other libraries in their stack.

General Cassandra resources

Apache Cassandra can be used independently of Python applications for data storage and querying. The learning curve for getting started is similar to other NoSQL data stores but scaling, performance and monitoring can be challenging. The following resources focus on addressing those issues based on teams that have felt the pain and often released their resulting tools as open source projects.

What subject do you want to learn next?

What're these NoSQL data stores hipster developers keep talking about?

Tell me about standard relational databases.

I've built a Python web app, now how do I deploy it?

Matt Makai 2012-2022