What is our primary use case?
I chose Citus Data for a strategic use case due to its extensive extension support. I needed a specific extension that was only available in PostgreSQL, which led me to use Citus Data.
One major use case is for a high-traffic Dumbling platform. The client is utilizing over 70% of the available compute resources on their largest instance, which made Citus Data a sensible choice.
It allows for distribution while maintaining PostgreSQL compatibility, which was crucial in this case.
What is most valuable?
Its distributed processing capabilities are a standout feature. It requires minimal changes to get up and running if you already have a system on PostgreSQL. Citus can run in its natural state. The performance of Citus Data has also been impressive.
What needs improvement?
There are many areas of improvement , especially in terms of DDL query routing. Even though it's masterless, DDL queries need to be sent to the coordinator node. Also, setting up a multi-node environment could be more straightforward.
Currently, setting up a multi-node environment is challenging. It's a bit tricky. Installation on each PostgreSQL node can lead to communication issues between nodes. An automatic rebalancing feature would be a significant improvement.
Currently, I have to manually command the rebalance. It would be more convenient if it was rebalanced automatically.
The dashboard and monitoring capabilities are good, but it would be helpful to have an integrated availability dashboard.
For how long have I used the solution?
I've been using it for a few years now, at least three years, maybe more.
I recently deployed the latest version 12.1 for a client about two weeks ago.
What do I think about the stability of the solution?
It is reliable. I would rate the stability an eight out of ten. It only crashes when not properly configured. If you know what you're doing, it just works. However, sometimes, we have to learn a few things the hard way. Compared to CockroachDB, it's a little behind in handling and managing load, which I prefer in Citus Data.
What do I think about the scalability of the solution?
I would rate the scalability an eight out of ten because you have to do a bit more.
For our last client, we have around a million end users.
Which solution did I use previously and why did I switch?
Previously, it was just PostgreSQL, and then we needed to scale it. The client made a switch because they had maxed out the scaled-up instance to the maximum available unit, and they were using about 70% of it. The only way was to scale out.
How was the initial setup?
The initial setup is a bit more difficult compared to CockroachDB.
For one particular client, the deployment was quite fast due to existing infrastructure and scripts. However, starting from scratch might take longer.
What was our ROI?
I have seen an ROI. I've always been able to find a product with utility in running the system.
What's my experience with pricing, setup cost, and licensing?
Citus Data has an open extension. The rest is on Azure cloud, which I also use. So, the pricing is normal for Postgres data on Azure cloud.
It is expensive, it is standard PostgreSQL pricing.
What other advice do I have?
Overall, I would rate the solution an eight out of ten mostly because of the need for better rebalancing and help with stability.
If you're on PostgreSQL and need to scale, Citus Data is basically the only option right now, at least.
Which deployment model are you using for this solution?
Public Cloud