You didn't mention costs of using this method. Usually business evolves in complete features. Each feature update touches multiple services, which is a major hassle. Now, communication between services is clanky, there is a fat REST boilerplate, Eg, it is expensive to update what data is passing around services. This means if you didn't get your service API right on the first try, you will need to crawl throught endless expensive in terms of time API updates. And ofc the price of using brokers, service discovery, registry - this is a lot of work and knowledge, huuuge investment. And what you get in the end?