Any way the Postgres DB can be setup in a fire and forget setup and scaled just by adding new nodes for read and write?
If that is not possible then my other option is FoundationDB. It will be some work on the application layer side, but I hope I will have to spend less time worrying about the DB administration.
What are your thoughts?
Personally, I would just use something managed like AWS's RDS for PostgreSQL
https://aws.amazon.com/rds/postgresql/
Then you don't need to worry too much about administrative tasks. As a bonus, you can start out small and easily scale as you grow, versus self-managed.
It doesn't have to be AWS. You can find similar offerings from pretty much any cloud provider.
Setup a flask or other service that can be queried and get a response back if a db is a replica or not, set up 2 groups in haproxy one for the master and another for replicas. Point your app to haproxy,you should now be able to promote the replica and not have to worry about updating your apps settings.
Use barman for backups.
There are definitely some alternatives that are setup fire and forget, but usually come with some cost. Self hosting a clustered postgres or similar will not be hastle free.
the simple alternative is to throw money at the problem, but based on your comment that doesn't seem to be an option.
There are some pretty cool tools surrounding SQLight to maintain a continuous backup as well as some simple read-replcas for scale up.
Another simple solution would be to use some managed no SQL, but cost can rise quite quickly with increased usage.
I really think foundationDB would be a misstep, it's a lot of work and requires a really good understanding of the db in excess of how to use it properly.
> Any way the Postgres DB can be setup in a fire and forget setup and scaled just by adding new nodes for read and write?
Generally I'd reply yes and no, yes, adding readers is pretty easy with these operators. No, postgres is generally single writer.
But the CrunchyData k8s operator (pgo) has active-active mode. I dont know much scalability this really buys, since ultimately everyone needs to soak the write load. There is sharding too, built into postgres, but I count myself as blessed that so far straight up verticle scaling has tackled every problem I've ever had and sharding hasnt beem required. Anyways here's a post on setting up active active in pgo, https://www.crunchydata.com/blog/multi-cluster-postgres-fede...
One thing missing from your post is any information on workload. What kind of data are you storing, what kind of use are you expecting,... it's hard to make recommendatuons in the abstract.
Setting this up with CDK is easier than ever: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_...
Also easy to setup read replicas etc down the line, but don't focus on any of that for now. Build something people want ;)
[0] https://aws.amazon.com/activate/ [1] https://aws.amazon.com/rds/postgresql/pricing/
I just recently migrated my postgres instance from DO to Fly and it was super easy.