Microservice architecture systems are adequate for big software systems, though companies tend to start with monolithic applications. This makes sense for any system that has small teams. As the system is explored and pivoted, it grows over time.
But when monolith systems grow to a certain size, they become difficult to handle and develop. The internals become intertwined for historical reasons, and with increased complexity, the reliability of the system can become compromised. Finding the balance between flexibility and redundancy can be difficult.
Remember that microservices are useful when the development team is big. For small teams, a monolith is easier to develop and maintain. It's only when many developers work on the same system that dividing the work and accepting the overheads of a microservice architecture makes sense...