Amazon RDS for PostgreSQL vs Citus: What are the differences?
What is Amazon RDS for PostgreSQL? * Set up, operate, and scale PostgreSQL deployments in the cloud*. Amazon RDS manages complex and time-consuming administrative tasks such as PostgreSQL software installation and upgrades, storage management, replication for high availability and back-ups for disaster recovery. With just a few clicks in the AWS Management Console, you can deploy a PostgreSQL database with automatically configured database parameters for optimal performance. Amazon RDS for PostgreSQL database instances can be provisioned with either standard storage or Provisioned IOPS storage. Once provisioned, you can scale from 10GB to 3TB of storage and from 1,000 IOPS to 30,000 IOPS.
What is Citus? Worry-free Postgres for SaaS. Built to scale out. Citus is worry-free Postgres for SaaS. Made to scale out, Citus is an extension to Postgres that distributes queries across any number of servers. Citus is available as open source, as on-prem software, and as a fully-managed service.
Amazon RDS for PostgreSQL and Citus are primarily classified as "PostgreSQL as a Service" and "Databases" tools respectively.
Some of the features offered by Amazon RDS for PostgreSQL are:
- Monitoring and Metrics –Amazon RDS provides Amazon CloudWatch metrics for you DB Instance deployments at no additional charge.
- DB Event Notifications –Amazon RDS provides Amazon SNS notifications via email or SMS for your DB Instance deployments.
- Automatic Software Patching – Amazon RDS will make sure that the PostgreSQL software powering your deployment stays up-to-date with the latest patches.
On the other hand, Citus provides the following key features:
- Multi-Node Scalable PostgreSQL
- Built-in Replication and High Availability
- Real-time Reads/Writes On Multiple Nodes
"Easy setup, backup, monitoring" is the top reason why over 22 developers like Amazon RDS for PostgreSQL, while over 3 developers mention "Multi-core Parallel Processing" as the leading cause for choosing Citus.
Citus is an open source tool with 3.5K GitHub stars and 263 GitHub forks. Here's a link to Citus's open source repository on GitHub.
What is Amazon RDS for PostgreSQL?
What is Citus?
Need advice about which tool to choose?Ask the StackShare community!
What are the cons of using Amazon RDS for PostgreSQL?
What are the cons of using Citus?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
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.
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
We use Amazon RDS for PostgreSQL because RDS and Amazon DynamoDB are two distinct database systems. DynamoDB is NoSQL DB whereas RDS is a relational database on the cloud. The pricing will mainly differ in the type of application you are using and your requirements. For some applications, both DynamoDB and RDS, can serve well, for some it might not. I do not think DynamoDB is cheaper. Right now we are helping Companies in Silicon Valley and in Southern California go SERVERLESS - drastically lowering costs if you are interested in hearing how we go about it.
I could spin up an Amazon EC2 instance and install PostgreSQL myself, review latest configuration best practices, sort Amazon EBS storage for data, set up a snapshot process etc.
Alternatively I could use Amazon RDS, Amazon RDS for PostgreSQL or Heroku Postgres and have most of that work handled for me, by a team of world experts...