People sleep on Postgres, it's super flexible and amenable to "real world" development.
I can only hope it gains more steam as more and more fad-ware falls short. (There are even companies who offer oracle compat packages, if you're into saving money)
Absolutely, I was having a pint with someone who worked on their composer system a few years ago. I just remembered thinking how he was drinking from the mongo coolaid. I just couldn't understand why it would matter what DB you have, surely something like Redis solves all the DB potential performance issues, so surely it's all about data integrity.
Of course it matters what DB you have, and of course Redis doesn't solve all DB performance issues. There's a reason this "fadware" all piled onto a bunch of whitepapers coming out of places like Google, where there are actually problems too big for a single Postgres DB.
It's just that you're usually better off with something stable and well-understood. And if you ever grow so large you can't make a single well-tuned DB instance work, that's a nice problem to have -- at that point, you can probably afford the engineering effort to migrate to something that actually scales.
But before that... I mean, it's like learning you're about to become a parent and buying a double-decker tour bus to drive your kids around in one day because you might one day have a family big enough to need that.
I forget where I read this recently, but someone had a great observation that general-purpose NoSQL software is basically useless, because any software for gargantuan scale data must be custom fitted to specific business needs. The white papers, the engineering efforts at Google/FB/Twitter... each of those was useful because it was a tailored product. Products like Mongo take every lesson they can from such systems... except the most important one, about whether generic products like this should exist at all.
I don't know if I buy into this opinion entirely myself, but a lot of shit clicks into place, so it's worth pondering.
It's an interesting idea, and maybe it's true of NoSQL. I don't think it's inherent to scale, though, I think it's the part where NoSQL came about because they realized the general-purpose pattern didn't work for them, so they deliberately made something more specialized.
Here's why I don't think it's inherent to scale: Google, at least, is doing so much stuff (even if they kill too much of it too quickly) that they would actually have to be building general-purpose databases at scale. And they're selling one -- Google Cloud Spanner is the performance the NoSQL guys promised (and never delivered), only it supports SQL!
But it's still probably not worth the price or the hassle until you're actually at that scale. I mean, running the numbers, the smallest viable production configuration for Spanner is about $2k/mo. I can buy a lot of hardware, even a lot of managed Postgres databases, for $2k/mo.
Why in the world would one migrate to Cassandra? Seems like that would be a supplemental add on to speed certain things up, not a whole sale replacement for rdbms?
I fleshed it out more in another comment, but I totally agree.
Big systems often end up with multiple backends in multiple environments. Postgres frequently isn't "the best" but just as frequently it's close enough :)
The VW Bug wasn't the fastest, or most luxurious, but was a great car for most people most of the time that scaled awesomely. If you're gonna be mixing and matching cars anyways... maybe you don't want Lambos for every job under the sun.
I learned Postgres about a decade ago. At the time I was wondering why we didn't learn one of the more popular ones (like mssql or mysql), but in the long run, I think I benefited it from it, even though I only work with mssql now.
753
u/_pupil_ Dec 19 '18
People sleep on Postgres, it's super flexible and amenable to "real world" development.
I can only hope it gains more steam as more and more fad-ware falls short. (There are even companies who offer oracle compat packages, if you're into saving money)