gRPC is an open-source remote procedure call framework designed for communication between distributed services, particularly microservice architectures. It addresses latency and payload-size concerns with binary serialization and multiplexing over a single connection. section 4.6 section 4.6.1
Protocol Buffers define the messages and remote methods. Quarkus detects proto files under src/main/proto during compilation, generates Java classes and client/server stubs, and leaves the business implementation to the developer. section 4.10 section 4.7
A typical Quarkus gRPC workflow is:
- Compile with `./mvnw clean package` so Quarkus generates the Java model, service base classes, and client stubs. section 4.7
- Implement the server methods and invoke them from clients through the generated stubs. section 4.7
Inventory service
An InventoryService can expose add and remove RPC methods. The add method accepts an InsertCarRequest and the remove method accepts a RemoveCarRequest; both return CarResponse. The response includes an automatically generated ID, while the insertion request does not allow the client to provide one. section 4.7
Figure 4.5 Visualizing the value of multiplexing in HTTP2
Compare serialized HTTP/1.1 request handling with HTTP/2 multiplexing to see why concurrent gRPC calls can reduce latency. section 4.6.1









