I think you should keep complexity down by only using postgres, but just use it as a sequel database until you scale enough that it's a problem.
90% of the time it's never going to scale that far.
When it does, use the tools people have made to do those jobs correctly. Do not hack you way into half-made tools put into a database that isn't specialized in that job.
It seems like you're making your life more simple by having only one system, but you're having that one system to so many things at the same time that it's going to be an absolute kludge in the long term.
Does anyone have experience trying something like this? If you did, is this how it turned out or did it actually work all right?
Yep, let’s not forget that your “simple” Postgres cluster gets complicated really fast when you start having to graft layers of tools on top of it. There’s a reason why Spanner and DynamoDB exist. God forbid someone try to use Postgres to solve the same problems and actually get the configs wrong leading to years of inconsistent data. Definitely never seen that happen…
Its somewhat situation dependent, but I've developed healthy systems that scale to surprisingly high throughputs with just a couple well designed sql databases, read replicas and memcached.
> A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.
A SQL database, maybe supplemented by a cache, can carry most projects as far as they'll ever go. And if you outgrow it, replace it with something that meets your new needs.
Any given project's "right tool for the job" can change over the project's lifetime, and optimizing for problems you don't have is quite harmful.
I think you should keep complexity down by only using postgres, but just use it as a sequel database until you scale enough that it's a problem.
90% of the time it's never going to scale that far.
When it does, use the tools people have made to do those jobs correctly. Do not hack you way into half-made tools put into a database that isn't specialized in that job.
It seems like you're making your life more simple by having only one system, but you're having that one system to so many things at the same time that it's going to be an absolute kludge in the long term.
Does anyone have experience trying something like this? If you did, is this how it turned out or did it actually work all right?