> One of the reasons microservice architecture originally became popular was to break apart monolithic applications.

I feel like the emphasis was on autoscaling parts of the app independently. (It’s telling that this has been forgotten and now we only remember it as “splitting up the app”.)

Scaling concerns can be a legitimate reason for a microservice, but I think those scaling concerns should be proven and not assumed before a new microservice is born.

I also hate the agreement of maybe one day we might... as a justification for a new microservice. The number of times that premature optimization didn't pay off is far less than I've seen it come to be.

Microservice should be an exception, not the preferred architectural design pattern.

Sometimes I cynically think system architects like them because they make their diagrams look more important.

You can have a modular monolith with multiple entrypoints that enable autoscaling of independent "deploys".

That’s always made sense to me in theory, but practically speaking a lot of logical units of service just don’t scale independently of your core service. Obviously this isn’t always true but I think it’s too easy to talk yourself into popping off new services and once you’ve built out the infrastructure for it and the incidental complexity is costly.