To start off in a project I highly recommend monolith, and personally I typically lean twords a layered architecture. That will of course depend on the problem I’m trying to solve.
When looking at needing to scale, I look at a few things. If the team is growing and the monolith is becoming increasingly complex, I look to migrate core feature sets to “plugins". Think how eclipse is designed. That way teams can be built out of the plugins, and then the complexity is left to the interface of plugin communicating with the base.
If the need to scale comes from a portion of the monolith is getting more “traffic". Shows signs of needing independent horizontal scaling. This is a prime case for a microservice.
But micro services provide many benifets. Ease of independent horizontal scaling. Ease to allow the service to independently crash and recover. Finally the ease of distributing the load on to many systems.