Live data from Hacker News

How to Scale a System from 0 to 10M+ Users

blog.algomaster.io

71–80 of 82 posts

Re: How to Scale a System from 0 to 10M+ Users

#71

Earlier quoted context omitted.

Unfortunately that message was way way behind the bombast of "microservices everywhere now" that preceded it for years, to the detriment of many small orgs. I've seen engineering orgs of 10-50 launch headlong into microservices to poor results. No exaggeration to say many places ended up with more repos & services than developers to manage them.

The worst I ever saw was an engineer misunderstood microservices, and made a service per endpoint. He started complaining to management that 50 CI/CD setups was his limit he could support. He was absolutely amazed when I showed him he could combine endpoints into a larger logical service. 50 services became three, and it’s still three a few years later now.

Nanoservices

Re: How to Scale a System from 0 to 10M+ Users

#72
post #68

Earlier quoted context omitted.

This behavior is self-inflicted by a decade of low pay and lack of significant raises to reward seniority. The most effective way to increase income for a developer is to join a place, rack up as many buzzwords as possible and leave after 2-3 years, using those buzzwords to secure a higher-paying role somewhere else. Rinse and repeat until you get a management position where you can use politics to increase your inco…

I wouldnt describe the 2010s as low pay for devs

Indeed Youth is wasted on the youth

Re: How to Scale a System from 0 to 10M+ Users

#73
post #67

Earlier quoted context omitted.

You can get the separation benefits of microservices in a compiled language with modules that only communicate over well-defined interfaces, constraining each team within their own module without having to introduce a network call between each operation.

Python dev is cheaper and faster though. People arent gonna kill velocity by making their backend in c++ so the devs can have seperation of concerns, something that can, and should, be self enforced with discipline

Java or C# is a nice middle ground. But even in python you can enforce said separation - one module can only import from itself, libraries or any other module’s “services” object, and must export its functions in its own “services” object.

Re: How to Scale a System from 0 to 10M+ Users

#74

Earlier quoted context omitted.

Microservices is bad for teams without discipline to implement "separation of concerns". They hope that physical network boundaries will force the discipline they couldn't maintain in a single codebase. While microservices force physical separation, they don't stop "Spaghetti Architecture." Instead of messy code, you end up with "Distributed Spaghetti," where the dependencies are hidden in network calls and shared da…

> Observability: Tracking a single request across 10 services I'm not sure if this is a discipline issue in the way that domain driven design, say, is a discipline issue. If you instrument requests with a global ID and point at tool at it then you're basically done from the individual team perspective.

Uh, that's not my experience at all.

Sure you can say e.g "this property wasnt set in this request while being processed by this service managed by this team", but why it wasn't set will inevitably need multiple teams, each doing in-depth analysis how such as state could've been caused because they always inevitably become distributed monoliths - the former is being provided by the instrumentation, but the latter isn't (and even the former is not perfect, as not all frameworks/languages have equal support)

Re: How to Scale a System from 0 to 10M+ Users

#75
post #53

Earlier quoted context omitted.

But you have to buy those servers, set them up, use them for that week, and then they're left idle for the whole of the year.

You don’t need to buy them, you can get them from AWS for that period only . Doesn’t mean your whole stack needs to be on AWS.

Doesn't mean, it significantly complicates state. Because the place that stores it (say, your bare metal machine with your database) is now the bottleneck.

Re: How to Scale a System from 0 to 10M+ Users

#77

Earlier quoted context omitted.

The best descripcion of microservices comes from "The Grug Brained Developer" ( https://grugbrain.dev/ ): "grug wonder why big brain take hardest problem, factoring system correctly, and introduce network call too seem very confusing to grug"

Grug actually covers this in his essay: > note, this good engineering advice but bad career advice: "yes" is magic word for more shiney rock and put in charge of large tribe of developer Microservices definitely contribute to having a "large tribe of developer" to manage.

Obligatory Krazam:

https://youtu.be/y8OnoxKotPQ

Re: How to Scale a System from 0 to 10M+ Users

#78

[flagged]

> I think a lot of these debates miss the core point, which is stage and context. Yes, a single modern server can handle far more than most people think, and yes, microservices are massively overused. But early teams usually optimize for speed, safety, and predictability rather than perfect efficiency. Cloud + autoscaling is expensive, but it reduces operational risk when traffic is unpredictable and the team is small. Bare metal is great once you understand your workload and failure modes, but it requires real ops discipline that many startups don’t have early on. Same with microservices: a modular monolith with good boundaries gets you very far with far less complexity, and most products never reach the scale where microservices are truly necessary. In practice, the winning approach tends to be: start simple, scale vertically, keep the architecture boring, and only add complexity when real bottlenecks force your hand - not because Twitter or Netflix did it.

Does this look like LLM slop to anybody?

A new account created just 2 days ago with not much comment history. And this happens to be their first substantive comment! I'll let you draw your own conclusions.

Re: How to Scale a System from 0 to 10M+ Users

#79
post #75

Earlier quoted context omitted.

You don’t need to buy them, you can get them from AWS for that period only . Doesn’t mean your whole stack needs to be on AWS.

Doesn't mean, it significantly complicates state. Because the place that stores it (say, your bare metal machine with your database) is now the bottleneck.

None of the autoscaling solutions presented in the post address the database issue either.

I agree that in general the database is always going to be your bottleneck and autoscaling appservers is generally bullshit.

But let’s assume your DB is fine and you do actually need to scale appservers beyond what your provisioned capacity can allow, you can trivially spin up VMs at AWS or your provider of choice, Wireguard to your “VPC” at your bare-metal provider (or just SSH tunnel the ports) and run your appserver binary/container/etc on it.

Hell in a pinch you can do the above with your dev laptop and serve traffic from it. It will work and your customers won’t even be able to tell.

Re: How to Scale a System from 0 to 10M+ Users

#80

Earlier quoted context omitted.

This behavior is self-inflicted by a decade of low pay and lack of significant raises to reward seniority. The most effective way to increase income for a developer is to join a place, rack up as many buzzwords as possible and leave after 2-3 years, using those buzzwords to secure a higher-paying role somewhere else. Rinse and repeat until you get a management position where you can use politics to increase your inco…

The time up to and including Covid saw massive developer salary increases. They've dropped (and lots have been laid off) post-Covid, but the last ten years cannot be described as stagnation.

The salaries may be high in absolute terms, but they’re still low in relative terms - compared to what jumping ship would give you when you have a resume full of buzzwords.
Post reply on HN