Picture an online store as a monolith. A customer clicks Place Order. The web layer receives the request, the order module validates the cart, the inventory module decrements stock, the payment module charges the card, and the email module queues a receipt, all as ordinary method calls inside one running process, wrapped in one database transaction. If the payment fails, the transaction rolls back the stock change automatically.
Now the store goes viral. Order traffic is ten times normal but everything else is calm. To handle it you spin up twenty more copies of the entire store app behind the load balancer, each carrying the full code for browsing, search, admin, and reporting that nobody is hammering. It works, but you are paying to scale code that does not need scaling.
That tension is exactly where teams start carving the busy parts out into separate services. Until that point, the monolith was the right call, and trying to be clever earlier would have slowed the product down.