The point-to-point integration of different microservices is hard to achieve because of the different technology stacks that may be used by a particular microservice that is present in the infrastructure. This may cause individual connectors to be built for every pair of microservices in order to translate the data format of one microservice to another.
Another bottleneck happens because of the scalability of these services, since now the connectors have to connect every single instance of the deployed microservice.
The enterprise service bus has been replaced with stateless message routers with the advent of microservice architecture, where these routers can be scaled up individually and implement message routing for the wide number of microservices that might be running inside an infrastructure.
The message brokers inside a microservice architecture provide high availability by replicating message queues between the multiple instances of the message broker that might be running. This allows the routers to take the place of a failing router and keep communication inside the infrastructure intact.