How this:
> The other extreme is saying that microservices should not call other microservices and all connection should be done via API gateway or message bus.

Comes to this:
>Yes, this makes the gateway fat.

I wonder?

Yes, skip the API gateway part. This in my view is the road to hell. But how can you make your message bus “fat”?

The only reliable way to decouple services is let them communicate reactively using events. This removed temporal coupling but also requires for services to hold to their own stuff and don’t grab other’s data on-demand, and not allow others to do the same.

Alexey is the Event Sourcing and Domain-Driven Design enthusiast and promoter. He works as a Developer Advocate at Event Store and Chief Architect at ABAX.