I really dislike that all "Microservice communication" guidances encourages RPC, synchronized communication. Service Meshes make the nightmare easier to bare. It makes bad design easier to implement than good design.<p>It creates temporal coupling between the services that becomes really hard to manage at scale, and relies on bells and whistles from the underlying orchestrator to keep your system healthy, instead of relying on the inherent robustness of your system design.