Message passing leads to greater scalability.
When you’re operating on a monolithic system, some of the development is easier because everything can call a method on a class directly. And probably for most systems, that is fine. But for applications that need to scale to handle large traffic volumes, the monolith starts to have problems. The only way to make it bigger is to run it on a larger server. Did you know at one point eBay ran on the largest Sun Enterprise 10K server available?
Eventually, of course, they had to split it up to an array of servers, just like everyone else who has to scale.
The easiest way to get a network of servers to work together is to leverage message-passing technologies. Using queues or publish/subscribe tools makes this easier. Although you may lose a bit of the real-time feel of the monolith, you gain a path to scalability.
By decoupling systems, each server can focus on its particular job. Inventory management can be one system, cash transactions on another, shipping and logistics on a third. As you break these systems down, you can replace single servers with clusters. A group of servers can scale up as needed.
Message passing is a powerful tool and definitely one you should learn more about.