Maintaining structure as the codebase grows is a challenge on it's own, especially when it's so big that you have multiple teams and way too many developers working on it.
At work we have a huge monolith and several smaller services. Working on the former it's never nice and my productivity is a fraction of what I can do when working on the smaller and saner projects.
I wouldn't always use a microseconds architecture. I think the best approach is to start with a modular monolith till it reaches a critical size.