liveBook · Manning

gRPC

As explained in Troubleshooting Java, Second Edition

gRPC is a remote procedure call framework and protocol for invoking operations across services, commonly using HTTP/2 and Protocol Buffers.

gRPC is a structured remote procedure call style for service-to-service communication. It can improve performance and contract clarity, but failures often appear as compatibility problems, unclear symptoms, or system-wide slowdowns. section 12.0 section 12.1

Investigate gRPC problems by asking:

  • Is the service reachable, or is a downstream dependency delaying the call? section 12.0
  • Do both services agree on the request, response, and data-contract versions? section 12.2
  • Are retries, timeouts, or dependency failures amplifying the original problem? section 12.0 section 12.1

A compatibility failure

A gRPC call can fail after someone renames a Protobuf enum or changes field optionality. Other symptoms may be dropped data, default values, or deserialization errors that appear only in particular cases. section 12.0 section 12.2

message Order {
  int64 id = 1;
  string customer_id = 2;
  repeated string items = 3;
  optional string notes = 4;
}

Use the Protobuf schema to inspect the fields exchanged through a gRPC service and reason about contract evolution. section 12.2

How Troubleshooting Java, Second Edition covers it

How deep it goes
Explains gRPC tradeoffs, failure modes, and Protobuf contracts, emphasizing diagnosis rather than detailed framework implementation.
Examples
Uses Protobuf schemas, enum changes, deserialization errors, downstream delays, retry storms, logs, metrics, and tracing tools.
What you can do after
Diagnose gRPC failures with structured logs, distributed tracing, protocol debuggers, and compatibility checks.
How it connects
Connects gRPC with RPC, REST, messaging, Protobuf, serialization, versioning, retries, timeouts, and distributed tracing.

Also explained in

Compare how 10 books explain gRPC →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Troubleshooting Java, Second Edition. The section links point to the parts of the book it draws on.