Messaging in an asynchronous inter-service communication style has the following drawbacks:
The Message Broker must not fail. If it fails, the whole application will not function.
The message schema must be defined within the message broker for all services. If there are any changes in the format of the message, this can affect the functioning of the application.
Transaction management is another caveat of the messaging approach for inter-service communication. We can use Two-Phase Commit to manage the transactions for a distributed application, but this is not always supported.