gRPC Java 1.44.0 switches default load‑balancing policy from pick_first to round_robin
0 reputation · 21 Apr 2023, 11:11 UTC
The goal is to keep a local developer setup repeatable so that a gRPC Java client always connects to the same backend instance during debugging and testing.
Starting with version 1.44.0 the library changed the channel‑level default from pick_first to round_robin unless an explicit policy is supplied. This alters the connection‑establishment pattern seen against a static list of local server ports and may affect latency observations or fail‑over behavior in environments that previously relied on the pick_first semantics.
What approach should be taken to preserve the original pick_first behavior in a repeatable development environment? Should the gRPC‑Java version be pinned to a pre‑1.44.0 release, or is it preferable to explicitly set the load‑balancing policy via channel arguments or a service config? How does this decision impact consistency across CI pipelines and local workstations?