Summary
In this chapter, we learned about various communication styles that can be adapted to facilitate communication in a microservices architecture, their challenges, and potential solutions. We discussed the fundamentals of system communication and how different architecture styles use them for communication. Further, we analyzed the drawbacks of direct client-to-microservices communication and how we can address them by introducing an API gateway that acts as a reverse proxy. We also explored how using a single API gateway for large applications can create ambiguities and how we can address these complexities using different approaches.
Later, we discussed availability and responsiveness as two important concepts and how different techniques can be used to enable resilient inter-process communication between microservices. Additionally, we looked at how a long chain of synchronous calls can lead to a retry storm that can make the overall system unavailable along with multiple...