Additionally, forcing things into a correct schema also protects you from a lot of data inconsistencies out of the box.
Finally, the dbms is going to be far better at JOINs than your application will. Nearly every web application needs JOINs at some point. Developers just don’t recognize what they are doing so they don’t realize what they are missing out on by doing it at the application layer.
Anyway - Schema slows development as hell, you need to maintain mapper layer between domain models and db models unless you model your system with anemic model mixed with tech stuff(db), but it is mess
Additionally you deal with either stringly typed sql
Or ORMs that require months of practice to be proficient even in c# which has LINQ
Because eventually, you'd want to analyze that data and it's a huge pain to do it with NoSQL. Imagine if you hired a business analyst and she needs to look at the data. Are you going to expect her to learn Javascript to query the data? Are you going to write an ETL pipeline to move data from a NoSQL db to an SQL db?
Note: I know many NoSQL DBs now support SQL queries.
I've set up databases, I've broken databases, I've restored databases, I've scaled databases, and I've migrated them. Never lost so much as a nibble of data.
My introduction to NoSQL was an article about Mongo losing someone's production data. Not even all of the data - partial data loss, the worst kind of data loss.
I'm just gonna head off that massive headache at day 0 and use an ACID compliant database.
From there it's lack of experience. Same reason I wouldn't decide to write my next thing in a new language unless I was specifically learning that language.
It was a first impressions thing that stopped any further investigation, not a comment on the current state of NoSQL
Jepsen
Ppl hate nosql cuz of mongo when there are other dbs, e.g RavenDB
>I'm just gonna head off that massive headache at day 0 and use an ACID compliant database.
It is just ACID vs BASE
I also have no reason to learn it at this time, an SQL database wins uncontested whenever I need to store data.
If I was to start a new project I wouldn't pick that moment to learn a new programming language. Same thing, different part of the stack
Honestly what it'd take would be the next WordPress or whatever using nosql by default. Make it need learning