369 karma · joined September 20, 2014
> You know exactly what your app needs to do, up-front
No one does. Mongodb still perfectly fits.
> You know exactly what your access patterns will be, up-front
This one also no one knows when they start. We successfully scaled MongoDB from a few users a day to millions of queries an hour.
> You have a known need to scale to really large sizes of data
This is exactly a great point. When data size goes to a billion rows, Postgres is tough. MongoDB just works without issue.
> You are okay giving up some level of consistency
This is said for ages about MongoDB. Today, it provides very good consistency.
> This is because this sort of database is basically a giant distributed hash map.
Putting MongoDB in category of Dynamo is a big mistake. It's NOT a giant distributed hash map.
> Arbitrary questions like "How many users signed up in the last month" can be trivially answered by writing a SQL query, perhaps on a read-replica if you are worried about running an expensive query on the same machine that is dealing with customer traffic. It's just outside the scope of this kind of database. You need to be ETL-ing your data out to handle it.
This shows the author has no idea how MongoDB aggregation works.
I don't want fresh grads to use SQL just because they learn relations (and consistency and constraints and what not). It's perfectly fine to start on MongoDB and make it the primary DB.
Here are the reasons image processing on VPS is hard.
- Reliability and uptime is a huge concern. If service goes down, images can show broken - When you build it yourself, you pay for image processing, bandwidth AND developer time. image processing at multiple terabytes and half a million image processed is not trivial ( inputs can be crazy and output needs to be modified as per the requesting platform) - Images form a big part of Google web vitals so slow image processing can hurt LCP score. - Newer formats like AVIF and JXL are increasingly complex. They need way more processing power than plain old JPEG.
This is only profitable if the data volume is huge though. For 5-10 TB, one is always best served by cloud storage providers like S3, R2 or Wasabi.
It's almost always best to use some sort of image processing service (like Gumlet.com) to optimise images and then pay lower per GB bandwidth costs.
Plus it paints a wrong picture of a country because it's technically people asking you a few bucks for a basic necessity and the government has failed.
This is in stark contrast with developed countries like Singapore (where I visit a lot). Singapore makes sure a public toilet is available within a few hundred meters and boy are those clean!
- Yeah olives in brine in a sealed food tin. We did not eat a lot of fish back then but there were food tins of all sorts on those ships. I personally only picked olives.
- A visit could be arranged if you knew anyone who managed the shipbreaking. If the ship is not broken yet, they show you how to climb the ship (mostly vertical steel ladders). If the breaking has started, they don't allow you to climb the ship but then you can roam around the site and inspect all the goods removed from the ship and buy it at whatever price u feel.
- Local population was not that educated. People did not take the businesses as badly as we treat them online. They feel it's a normal industry like anything else and gives employment so they are mostly fine with it. If some worker loses their life (a few do every year) the families are compensated to the tune of $1000 to $2000 and life goes on. (sad I know)
Happy to answer any questions you guys might have.
Gradually upgraded storage as I needed and now on 2TB tier. I actually never ever faced any problem on iCloud. I never used Dropbox but used Google drive as personal storage in past (and still use at work).
I know over simplified approach but majority of problem would be solved.
I would trust AWS but not Google.
Your actions have powered billions of dreamers and saved trillions of hours for the mankind.