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.
How to Scale a System from 0 to 10M+ Users
71–80 of 82 posts
Re: How to Scale a System from 0 to 10M+ Users
#72Earlier 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
Re: How to Scale a System from 0 to 10M+ Users
#73Earlier 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
Re: How to Scale a System from 0 to 10M+ Users
#74Earlier 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.
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
#75Earlier 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.
Re: How to Scale a System from 0 to 10M+ Users
#76Re: How to Scale a System from 0 to 10M+ Users
#77Earlier 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.
Re: How to Scale a System from 0 to 10M+ Users
#78[flagged]
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
#79Earlier 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.
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
#80Earlier 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.