How do you get lots of engineers to work on a single monolithic application, while releasing the app into production on a very frequent basis (e.g., daily)?
The traditional answer has been to add complexity into your workflow (e.g., feature freezes, staging environments, code reviews, more testing). These are all reasonable things and good ideas. But at some point your velocity starts to slow down dramatically because of all this complexity.
Worst of all, this complexity isn't necessary for every feature. You might be prototyping some stuff, for example. But a monolithic architecture forces everyone onto the same workflow.
Microservices enables different workflows for different features (services). The value of this, even when you're at a small scale, can be pretty significant.
I disagree, when your little app blows up and your backend dies, then you could very well miss your big break. In this crazy world of overnight success you need to be ready to handle the HN or Reddit hug-of-death.
Maybe you don't need to split your infrastructure into services, but doing so makes scaling a breeze.
https://blog.disqus.com/scaling-django-to-8-billion-page-vie...
Modularity is central in MsA; don't like the way this service is designed or something better is available (FaaS) with lower implementation cost than net-new, in-house services.
Keep the Monolith flame burning. They will always have a place.