Disadvantages of REST

Martin Thomas once said “Synchronous communication is the crystal meth of distributed software”, because it feels good at the time, but in the long run, it is bad for you. This applies primary to communication between microservices within the enterprise, which are in some cases at odds with the principles of proper microservices architecture:

  • Tight Coupling: The developer assumes that the message will only ever need to be delivered to one location.

  • Blocking: When invoking a REST service, your service is blocking and waiting for a response. This hurts application responsiveness.

  • Error Handling: What if the network is unreliable? You have to create retry mechanisms, making your code more complex.

Most of these disadvantages can be resolved by using an event driven architecture with microservices. In addition to resolving the issues above, an event driven architecture allows your microservice to scale.