Citus Con: An Event for Postgres is a wrap! 💥 Thanks to all who joined. If you missed the event, you can still find and watch all 38 recorded talks 🖥 online.
Citus Con: An Event for Postgres is a wrap! 💥 Thanks to all who joined. If you missed the event, you can still find and watch all 38 recorded talks 🖥 online.
Many SaaS applications—especially B2B apps—are multi tenant. So the apps have a natural dimension on which to distribute data across nodes: just shard by tenant_id. Our Citus extension to Postgres enables you to scale out your database to millions of tenants, without having to re-architect your application.
Most SaaS applications are inherently relational. By sharding on customer_id, Citus gives you the ability to scale out your SaaS database with full SQL coverage, so you don’t have to give up the relational semantics you need, like joins, foreign key constraints, transactions, ACID, consistency. By scaling out, your app gets much bigger memory, compute, and disk footprint—ensuring performance even in the face of growth. And since Citus is an extension to Postgres, you can leverage all of your existing expertise—plus all the Postgres reliability, rich data types (think: JSON and PostGIS), Postgres extensions (our favorites include HyperLogLog), and ongoing innovation in the amazing Postgres open source community.
So you want a database that can handle peak workloads and boatloads of concurrent users; act as a system of record and provide business analytics; offer high availability and provide elastic scale as your customer base triples in size. Check. The icing on the cake is for the database to integrate seamlessly with your frameworks like Rails, Django, Hibernate, and Sequelize. Because Citus is an extension to Postgres, we’ve been able to build on top of the robust, existing Postgres integrations and make it easy for multi tenant apps to use Citus: recent additions include an activerecord-multi-tenant gem for Ruby on Rails, and a Python django-multitenant library for Django. More to come.
While you may have a lot of data and your SaaS database may soon be too big for single-node Postgres, it’s likely that any given customer of yours can get the database performance they need from a single node. With our Citus extension to Postgres, the database is scaled out and yet data for each of your SaaS customers is
A Citus database cluster includes a coordinator node and multiple worker nodes, with Postgres and Citus installed on each node. With HA turned on in Citus Cloud secondary nodes exist, too. Citus shards the database based on the distribution key, and distributes the shards across the worker nodes. Meanwhile, the coordinator stores metadata about the shards. All of your queries are executed via the Citus coordinator node, which transforms the query into smaller fragments that can be run independently on individual shards. The pièce de résistance: Because Citus can parallelize query fragments across multiple nodes in a cluster, you can run powerful cross-shard queries across all of your customer data quickly and easily.
Citus is available as Hyperscale (Citus), a
Want to get started with Citus on Azure?
Here’s the Quickstart