Picking your stack/architecture based on team size is something most engineers miss.
Microservices, great for companies with many teams. Not so much when it's three people scrambling to create something meaningful. Monolith all the way.
It's funny because microservices are explicitly targeted at solving problems for development with many teams, and lots of single team companies cargo cult them. Did they miss the first paragraph when they were reading up on what microservices are?
- different SLA and scaling requirements per component/endpoint
- different security domains per component/endpoint
- different rollout strategies/policies per component/endpoint (no need to restart your long-lived client TCP sessions in parallel to rolling out a business logic fix)
- ...
I've been happily developing and deploying microservices for small customers, in teams of 1 to 10 people. But I also don't work with customers who just need simple CRUD apps.
Everything depends on context, but I don't think microservices are the best solution. I think in nearly every case there is an easier way to address those problems.
Who says only multiple teams need microservices, and who put them in charge of what people find helpful?
If the 'app' has enough different 'bits' I'd favour a SOA no matter the team size.
Somebody now wants to say that isolation doesn't necessitate distinct services; they're probably right, but the alternative is great discipline - why not make it easy?
It's a form of defensive programming isn't it? - if widget factory shouldn't be using a function from auth helpers, make it impossible!
There are better ways to solve that problem. Different packages, visibility modifiers, using interfaces between modules, etc. Taking a little time to iron out a disciplined process for your team is so much better than using tcp/ip as your process and all the problems that brings.
If you can't trust your team to follow a process correctly, you're fucked in a way microservices can't save you from.
Microservices, great for companies with many teams. Not so much when it's three people scrambling to create something meaningful. Monolith all the way.