If you’re ready to try Citus, our new Getting Started page can help to get you going.
If you’re ready to try Citus, our new Getting Started page can help to get you going.
Citus is an extension to Postgres that transforms Postgres into a distributed database.
Citus Community is our open source edition. If you need
Hyperscale (Citus) is a
Citus Enterprise gives you the same awesome scale-out features as our open source edition, plus advanced features like shard rebalancing & tenant isolation.
All queries to a Citus database cluster are managed by the Citus coordinator node, which looks just like single-node Postgres to the application—modulo the performance benefits from scaling out. The Citus coordinator is equipped with a distributed SQL engine that transforms SQL queries & routes the transformed queries to the correct shards on the correct worker nodes. In this animation, the co-located join and update scenarios are examples of single-tenant SQL queries, hence they only need to query a subset of shards on a subset of the worker nodes. Whereas the distributed aggregate and distributed transaction scenarios need to access shards across multiple nodes.
Citus vs. Single-Node Postgres
A side-by-side comparison of Citus vs. single-node Postgres, comparing the performance of CREATE INDEX
, data loading, analytical queries, and lookup queries.
Citus scales out Postgres horizontally—transforming your favorite relational & open source database into a distributed database. If you’re running into the limits of single-node Postgres, Citus might be right for you. Some common workloads that work well on Citus are:
What happens when your SaaS business becomes an overnight success? The good news is you no longer have to re-architect your app to migrate to NoSQL or to shard your application. Because most SaaS applications already have the notion of a tenant or customer built into their data model, SaaS apps are a good fit for a distributed database like Citus. Citus gives you relational semantics—including ACID transactions and full SQL coverage—and allows you to transparently scale to hundreds of machines.
Customer-facing analytics dashboards often require sub-second response times. And since so many users query their dashboards at the same time, the ability to support high numbers of concurrent users is important as well. By sharding and parallelizing your SQL queries across multiple nodes, Citus gives you real-time analytics and transactions. So you can perform sub-second scans and aggregations across billions of events, while still providing millisecond latency on inserts, upserts, and small look ups.
No longer do you have to give up the relational benefits of SQL in order to get the performance of a scale-out database. And no longer do you have to redesign your data model and re-architect your SaaS application in order to scale out. Because Citus is an extension to Postgres, Citus works just like Postgres, with support for complex transactions, foreign keys, relationships between models, and joins.
Citus works well with most of the popular programming languages, whether Ruby, Python, Java, Node.js, Javascript, Go, C++. And to make it easy for you to migrate your multi-tenant Rails and Django applications to Citus, we’ve created PostgreSQL libraries so your SaaS app should work mostly as-is: an activerecord-multi-tenant gem for Ruby on Rails, and a Python django-multitenant library for Django.
As for migrating your data from single-node Postgres to Citus, the tools you need depend on the size of your database. For some, pg_dump and pg_restore are sufficient. For others migrating from single-node RDS Postgres to Citus, we’ve created a citus_warp utility that replicates your current database into Citus and keeps the two in sync while you’re getting ready to deploy to production. If you need help figuring out if Citus is right for you and how best to migrate, just contact us and we’ll help figure it out.
Citus is available as open source,
Citus is a Postgres extension (not a fork), so you can stay current with new releases, use your familiar SQL toolset, & leverage all your Postgres expertise.
We make it simple to shard PostgreSQL. So you don’t have to re-architect your app when you hit the ceiling on single-node Postgres.
By sharding your data & parallelizing SQL across multiple nodes, Citus delivers insanely fast performance. Even with real-time data ingest & billions of rows.
Citus is built into Azure Database for PostgreSQL, a managed database as a service. With Citus & Azure, you can focus on your app & forget about your database.
A distributed Postgres database like Citus can handle both your analytics & your transactional workloads. Hence the “transactional & analytics” acronym: HTAP.