In microservices that communicate with each other, several messages are sent one after the other, or even simultaneously. It is common for messages to get lost due to a fault in the execution of a microservice, and thus the flow is broken.
More problematic still, it is necessary to find where the chain is broken to restart the process. However, it is never easy to browse the logs of all the servers hosting the microservices. It takes time and the quality of service is therefore not there.
It is possible to create a flow routing microservice, however this creates an increase in messages passing through your bus. This complicates the operation of your environment.
It is not easy to have a clear visibility of the communications between microservices. Certainly it is possible to document and refer to it. But how can you be sure of what is actually transiting on the bus ?