+ 1

What is Citus?

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.
Citus is a tool in the Databases category of a tech stack.
Citus is an open source tool with 4.3K GitHub stars and 337 GitHub forks. Here’s a link to Citus's open source repository on GitHub

Who uses Citus?

17 companies reportedly use Citus in their tech stacks, including Chime, Mux, and Heap.

19 developers on StackShare have stated that they use Citus.

Citus Integrations

Java, PostgreSQL, Django, Heroku, and Rails are some of the popular tools that integrate with Citus. Here's a list of all 14 tools that integrate with Citus.
Public Decisions about Citus

Here are some stack decisions, common use cases and reviews by companies and developers who chose Citus in their tech stack.

Dan Robinson
Dan Robinson
Shared insights

PostgreSQL was an easy early decision for the founding team. The relational data model fit the types of analyses they would be doing: filtering, grouping, joining, etc., and it was the database they knew best.

Shortly after adopting PG, they discovered Citus, which is a tool that makes it easy to distribute queries. Although it was a young project and a fork of Postgres at that point, Dan says the team was very available, highly expert, and it wouldn’t be very difficult to move back to PG if they needed to.

The stuff they forked was in query execution. You could treat the worker nodes like regular PG instances. Citus also gave them a ton of flexibility to make queries fast, and again, they felt the data model was the best fit for their application.

#DataStores #Databases

See more
Dan Robinson
Dan Robinson

At Heap, we searched for an existing tool that would allow us to express the full range of analyses we needed, index the event definitions that made up the analyses, and was a mature, natively distributed system.

After coming up empty on this search, we decided to compromise on the “maturity” requirement and build our own distributed system around Citus and sharded PostgreSQL. It was at this point that we also introduced Kafka as a queueing layer between the Node.js application servers and Postgres.

If we could go back in time, we probably would have started using Kafka on day one. One of the biggest benefits in adopting Kafka has been the peace of mind that it brings. In an analytics infrastructure, it’s often possible to make data ingestion idempotent.

In Heap’s case, that means that, if anything downstream from Kafka goes down, we won’t lose any data – it’s just going to take a bit longer to get to its destination. We also learned that you want the path between data hitting your servers and your initial persistence layer (in this case, Kafka) to be as short and simple as possible, since that is the surface area where a failure means you can lose customer data. We learned that it’s a very good fit for an analytics tool, since you can handle a huge number of incoming writes with relatively low latency. Kafka also gives you the ability to “replay” the data flow: it’s like a commit log for your whole infrastructure.

#MessageQueue #Databases #FrameworksFullStack

See more

Citus's Features

  • 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

Citus Alternatives & Comparisons

What are some alternatives to Citus?
TimescaleDB: An open-source database built for analyzing time-series data with the power and convenience of SQL — on premise, at the edge, or in the cloud.
It allows you to deploy a database on-prem, in the cloud or even across clouds, all as a single store. It is a simple and straightforward bridge to your future, cloud-based data architecture.
Apache Aurora
Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation.
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 is a database solution for deploying, scaling and managing large clusters of MySQL instances. It’s architected to run as effectively in a public or private cloud architecture as it does on dedicated hardware. It combines and extends many important MySQL features with the scalability of a NoSQL database.
See all alternatives

Citus's Followers
49 developers follow Citus to keep up with related blogs and decisions.
Rakesh Kesanakurthy
Tim Gao
Eleni Santorinaiou
Filip Koltas
Павел Аметов
Александр Петричкович
Dan Boresjo
Anton Maya Jiménez
Anshu Verma