How would you justify the performance aspects of a system when you move to MS specially when you consider the latency etc..., invoking separate out of process services as opposed to processes running on the same server?
Microservices do introduce higher latency. The payoff is that you get more flexible development, and can respond to requirements changes more quickly.
In the early stages of a project, latency is not so important, as your focus will be on correct implementation of the business requirements.
Once you reach the later stages, you can assess where the bottlenecks are, and merge services if necessary to avoid network overhead.
This works because, like most things, performance needs are concentrated on a small number of important process pathways, rather than all of them.
Your messaging layer should make this merging possible without changes to business logic code, as the message transport becomes an internal function call.