Skip to content

II. Communication Protocols & API Design

Once logic spans multiple services, how they talk becomes an architectural decision with consequences in latency, coupling, and failure behavior. The choice is never just “REST or gRPC”: it is synchronous request-response versus asynchronous messaging, strict contracts versus schema evolution, and where in the path you place the gateway and load balancer that every request must survive. This part covers the wire-level mechanics and the failure semantics of each option — above all, the fact that a timeout tells you nothing about whether your request actually executed.