| ▲ | rmunn a day ago | ||||||||||||||||
Counterpoint: the idea that your project will be the one to scale up to the millions of users/requests/etc is hubris. Odds are, your project won't scale past a scale of 10,000 to 100,000. Designing every project to scale to the millions from the beginning often leads to overengineering, adding needless complexity when a simpler solution would have worked better. Naturally, that advice doesn't hold if you know ahead of time that the project is going to be deployed at massive scale. In which case, go ahead and implement your database replication, load balancing, and failover from the start. But if you're designing an app for internal use at your company of 500, well, feel free to just use SQLite as your database. You won't ever run into the problems of scale in this app, and single-file databases have unique advantages when your scale is small. Basically: know when huge scale is likely, and when it's immensely UNlikely. Design accordingly. | |||||||||||||||||
| ▲ | jiggawatts 20 hours ago | parent [-] | ||||||||||||||||
> Odds are, your project won't scale past a scale of 10,000 to 100,000. That may be a self-fulfilling prophecy. I agree in general that most apps don't need fancy scaling features, but apps that can't scale... won't... and hence "don't need scaling features". > You won't ever run into the problems of scale in this app, and single-file databases have unique advantages when your scale is small. I saw a customer start off with essentially a single small warehouse selling I dunno... widgets or something... and then the corporation grew and grew to a multi-national shipping and logistic corporation. They were saddled with an obscure proprietary database that worked like SQLite and had incredibly difficult to overcome technical challenges. They couldn't just migrate off, because that would have needed a massive many-year long total rewrite of their app. For one performance issue we were seriously trying to convince them to use phase-change cooling on frequency-optimized server CPUs like a gamer overclocking their rig because that was the only way to eke out just enough performance to ensure their overnight backups didn't run into the morning busy time. That's just not an issue with SQL Server or any similar standard client-server database engine. | |||||||||||||||||
| |||||||||||||||||