Is microservice calling really slow? Toggle REST↔gRPC and chatty↔batched calls to feel exactly where the latency goes — and how to get it back.
Task: assemble one order-details page that needs data from 4 services.
Total latency
180 ms
Data over wire
720 KB
Round trips
4
🖥️
Client
0 ms
👤
User
45ms · 180KB
📦
Items
45ms · 180KB
🏷️
Pricing
45ms · 180KB
🚚
Shipping
45ms · 180KB
Four separate round trips from the client — latency stacks up call after call.
Chatty + REST
180 ms
Chatty + gRPC
28 ms
Coarse + REST
60 ms
Coarse + gRPC
12 ms
What just happened
▹Microservices aren't slow because they're microservices — they're slow when you make many small (chatty) calls in series. 4 REST hops at 45ms each = 180ms before you've done anything.
▹gRPC uses binary protobuf over HTTP/2: ~6–7× faster and far smaller payloads than JSON/REST. Use it for internal service-to-service calls; keep REST for public, browser-facing APIs.
▹The bigger win is removing chattiness: batch the 4 calls into one coarse-grained / BFF call. Coarse + gRPC turns 180ms into ~12ms. Latency comes from round trips, not from the word 'microservice'.