Why Use Postgres
I really disagree with this. The more features you use from your DBMS vendor, the more you shoot yourself in the following departments:<p>- scalability. Logic and processing in the server is bad as it means you can only scale up and not scale out. Scale up is damn expensive. When you need that 64 core 96Gb machine to run it all on with 6 replicas will see what I mean.<p>- complexity. The DBMS is a black box which sucks up tight coupling almost instantly. Coupling is bad for maintenance and scalability. SQL always ends up with heavy coupling.<p>- lock in. Those features only work with postgres so you're stuck with it forever or induce a lot of cost to move away when a better solution comes along.<p>- schema. Maintaining schema and dependencies is hell on all but a small system.<p>These facts come from 20 years of using databases.<p>Stuff that will save you: Use your DBMS as a simple flat store akin to a document store. Use a CQRS based architecture and encapsulate ALL of your logic in code. If you have to go at least partially relational for god's sake use an ORM that supports several databases well. Make a provider independent app level backup/restore facility such as the one with JIRA or TeamCity. NEVER hire a DBA - they exist only to create walled gardens to protect their existence.<p>My current gig has cocked up on all areas and it's costing them over 40% of their turnover keeping it alive.<p>Happy databasing :)