StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Databases
  4. Databases
  5. Cassandra vs Citus

Cassandra vs Citus

OverviewDecisionsComparisonAlternatives

Overview

Cassandra
Cassandra
Stacks3.6K
Followers3.5K
Votes507
GitHub Stars9.5K
Forks3.8K
Citus
Citus
Stacks60
Followers124
Votes11
GitHub Stars12.0K
Forks736

Cassandra vs Citus: What are the differences?

Introduction

In this article, we will discuss the key differences between Cassandra and Citus.

  1. Scalability: One of the key differences between Cassandra and Citus is their approach to scalability. Cassandra is a distributed database that is designed to scale horizontally across multiple nodes. It achieves this through its partitioning strategy and peer-to-peer architecture, allowing it to handle large amounts of data and high write throughput. On the other hand, Citus is an extension to PostgreSQL that scales vertically by distributing the data across multiple machines using sharding. It leverages PostgreSQL's shared-nothing architecture to provide high scalability.

  2. Data Model: Another significant difference between Cassandra and Citus is their data model. Cassandra is a NoSQL database that follows a column-oriented data model. It stores data in tables that are organized into column families, with each row consisting of multiple columns. This flexible schema allows for dynamic and fast data access. Citus, on the other hand, is an extension to PostgreSQL, which follows a relational data model. It uses tables with rows and columns to store data, and supports SQL queries for data retrieval and manipulation.

  3. Consistency Model: Cassandra and Citus differ in their consistency models. Cassandra offers tunable consistency, allowing users to choose between strong consistency or eventual consistency. It uses the quorum-based replication strategy to provide high availability and fault tolerance. Citus, on the other hand, follows the strong consistency model by default. It ensures that every database transaction is atomic, consistent, isolated, and durable (ACID), which is important for applications that require strict consistency guarantees.

  4. Replication: Replication is handled differently in Cassandra and Citus. Cassandra uses a masterless architecture with peer-to-peer replication, where each node in the cluster can accept write requests and handle read requests. It replicates data across multiple nodes using a replication factor defined for each keyspace. Citus, on the other hand, uses a distributed database model with a master node that coordinates writes and distributes data across multiple worker nodes. It provides automatic sharding and replicates data based on the primary key.

  5. Query Language: Both Cassandra and Citus have different query languages. Cassandra uses CQL (Cassandra Query Language), which is similar to SQL but has some differences due to its NoSQL nature. CQL supports a wide range of queries and provides features like secondary indexes and materialized views. On the other hand, Citus uses SQL as its query language, as it is an extension to PostgreSQL. It supports the full range of SQL queries and provides advanced features like window functions, JSON functions, and common table expressions.

  6. Use Cases: Cassandra and Citus are suited for different types of use cases. Cassandra is well-suited for applications that require high scalability, high availability, and fault tolerance, such as big data analytics, time series data, and IoT applications. It is designed to handle large volumes of writes and reads across multiple nodes. Citus, on the other hand, is suitable for applications that require horizontal scalability with strong consistency, such as transactional workloads, multi-tenant applications, and real-time analytics. It provides a familiar SQL interface and can leverage PostgreSQL's rich ecosystem of extensions and tools.

In summary, Cassandra and Citus differ in their scalability approaches, data models, consistency models, replication strategies, query languages, and use cases. While Cassandra excels in distributed scalability and offers eventual consistency, Citus provides vertical scalability with strong consistency using a relational data model and SQL capabilities.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Cassandra, Citus

Micha
Micha

CEO & Co-Founder at Dechea

May 27, 2022

Decided

Fauna is a serverless database where you store data as JSON. Also, you have build in a HTTP GraphQL interface with a full authentication & authorization layer. That means you can skip your Backend and call it directly from the Frontend. With the power, that you can write data transformation function within Fauna with her own language called FQL, we're getting a blazing fast application.

Also, Fauna takes care about scaling and backups (All data are sharded on three different locations on the globe). That means we can fully focus on writing business logic and don't have to worry anymore about infrastructure.

93k views93k
Comments
Krishna Chaitanya
Krishna Chaitanya

Head of Technology at Adonmo

Jun 27, 2021

Review

For such a more realtime-focused, data-centered application like an exchange, it's not the frontend or backend that matter much. In fact for that, they can do away with any of the popular frameworks like React/Vue/Angular for the frontend and Go/Python for the backend. For example uniswap's frontend (although much simpler than binance) is built in React. The main interesting part here would be how they are able to handle updating data so quickly. In my opinion, they might be heavily reliant on realtime processing systems like Kafka+Kafka Streams, Apache Flink or Apache Spark Stream or similar. For more processing heavy but not so real-time processing, they might be relying on OLAP and/or warehousing tools like Cassandra/Redshift. They could have also optimized few high frequent queries using NoSQL stores like mongodb (for persistance) and in-memory cache like Redis (for further perfomance boost to get millisecond latencies).

53.8k views53.8k
Comments
Umair
Umair

Technical Architect at ERP Studio

Feb 12, 2021

Needs adviceonPostgreSQLPostgreSQLTimescaleDBTimescaleDBDruidDruid

Developing a solution that collects Telemetry Data from different devices, nearly 1000 devices minimum and maximum 12000. Each device is sending 2 packets in 1 second. This is time-series data, and this data definition and different reports are saved on PostgreSQL. Like Building information, maintenance records, etc. I want to know about the best solution. This data is required for Math and ML to run different algorithms. Also, data is raw without definitions and information stored in PostgreSQL. Initially, I went with TimescaleDB due to PostgreSQL support, but to increase in sites, I started facing many issues with timescale DB in terms of flexibility of storing data.

My major requirement is also the replication of the database for reporting and different purposes. You may also suggest other options other than Druid and Cassandra. But an open source solution is appreciated.

462k views462k
Comments

Detailed Comparison

Cassandra
Cassandra
Citus
Citus

Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster. Row store means that like relational databases, Cassandra organizes data by rows and columns. The Cassandra Query Language (CQL) is a close relative of SQL.

It's an extension to Postgres that distributes data and queries in a cluster of multiple machines. Its query engine parallelizes incoming SQL queries across these servers to enable human real-time (less than a second) responses on large datasets.

-
Multi-Node Scalable PostgreSQL;Built-in Replication and High Availability;Real-time Reads/Writes On Multiple Nodes;Multi-core Parallel Processing of Queries;Tenant isolation
Statistics
GitHub Stars
9.5K
GitHub Stars
12.0K
GitHub Forks
3.8K
GitHub Forks
736
Stacks
3.6K
Stacks
60
Followers
3.5K
Followers
124
Votes
507
Votes
11
Pros & Cons
Pros
  • 119
    Distributed
  • 98
    High performance
  • 81
    High availability
  • 74
    Easy scalability
  • 53
    Replication
Cons
  • 3
    Reliability of replication
  • 1
    Updates
  • 1
    Size
Pros
  • 6
    Multi-core Parallel Processing
  • 3
    Drop-in PostgreSQL replacement
  • 2
    Distributed with Auto-Sharding
Integrations
No integrations available
.NET
.NET
Apache Spark
Apache Spark
Loggly
Loggly
Java
Java
Rails
Rails
Datadog
Datadog
Logentries
Logentries
Heroku
Heroku
Papertrail
Papertrail
PostgreSQL
PostgreSQL

What are some alternatives to Cassandra, Citus?

MongoDB

MongoDB

MongoDB stores data in JSON-like documents that can vary in structure, offering a dynamic, flexible schema. MongoDB was also designed for high availability and scalability, with built-in replication and auto-sharding.

MySQL

MySQL

The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software.

PostgreSQL

PostgreSQL

PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.

Microsoft SQL Server

Microsoft SQL Server

Microsoft® SQL Server is a database management and analysis system for e-commerce, line-of-business, and data warehousing solutions.

SQLite

SQLite

SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file.

Memcached

Memcached

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

MariaDB

MariaDB

Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry. MariaDB is designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.

RethinkDB

RethinkDB

RethinkDB is built to store JSON documents, and scale to multiple machines with very little effort. It has a pleasant query language that supports really useful queries like table joins and group by, and is easy to setup and learn.

ArangoDB

ArangoDB

A distributed free and open-source database with a flexible data model for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.

InfluxDB

InfluxDB

InfluxDB is a scalable datastore for metrics, events, and real-time analytics. It has a built-in HTTP API so you don't have to write any server side code to get up and running. InfluxDB is designed to be scalable, simple to install and manage, and fast to get data in and out.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase