HACKER Q&A
📣 max_

Best way to scale a project that may potentially have 10M users?


Hi guys,

I am thinking of starting a very simple service that may have about 10 million users.

I am thinking of using a hosted database like MongoDB's Atlas, Firebase, or cloud flare's KV. So I am not so worried about the database part.

What I am worried about is the application logic that I intend to write in flask and purely python.

How do I make sure that the application can support 10 million users, without going down? Scaling down & scaling up server resources according to usage.

What approach would be best for a solo dev? i.e least complex & easiest to manage, not necessarily the cheapest or more effective way.

My only experience of running a software service is having less than a dozen users for some finance company on a $3 per month Amazon Light Sail. I don't have any experience on building a service with serious numbers of users.


  👤 8organicbits Accepted Answer ✓
If your application servers are stateless, you'll scale those horizontally. Look into application load balancers and auto scaling groups.

> best for a solo dev

Which frameworks have you used before? Most have a scaling story.

We'll also need to know what kind of app you're building. A mobile game, financial platform, developer tool, all have significantly different needs.

Also, agreed with alex_lav, you've got a lot to do before you actually have 10M users. Don't hyper focus on scale.


👤 meiraleal
First you need to scale to 1,000 users, then you will know how to scale to 10,000 (or maybe not). Other than that it is just daydreaming.

👤 pestatije
> for a solo dev

imagine 1 in one thousand users has an issue and contacts support(you, since you are a solo dev), how are you going to effectively support those 10k requests?


👤 alex_lav
> I am thinking of starting a very simple service that may have about 10 million users.

Until it actually has 10 million users, it doesn't and almost certainly won't have 10 million users.

Very very respectfully, if you're asking this question here, you probably aren't equipped to run a service that successful anyway. Either out of technical inability or available cash.