grpc-java icon indicating copy to clipboard operation
grpc-java copied to clipboard

gRPC Mirroring

Open codrutciulacu opened this issue 1 month ago • 1 comments

Is your feature request related to a problem?

Envoy supports request mirroring, which sends the same event to a primary Envoy cluster and also forwards it to another secondary cluster, configured either statically or dynamically.

This feature would be handy for testing and validation, such as migrating from one service to another or checking for regressions between two versions.

Describe the solution you'd like

The solution we are looking for is the ability to mirror the same requests sent to two different gRPC services based on a static definition, like in here: https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/route-mirror.html

Describe alternatives you've considered

One alternative would be to proxy our traffic through an Envoy deployment, but this would mean an extra hop in our system, as we are doing client-side load balancing right now.

codrutciulacu avatar Oct 28 '25 11:10 codrutciulacu

I think there is some wider interest in mirroring. This will need a cross-language gRFC. That will be easiest after RLQS/ext_authz/ext_proc gRFCs are in place, as they need much of the same infrastructure as this would. An important part of the design will be handling flow control. I've been told that C++ implementation would want to wait for their internal call-v3 migration to complete, but that wouldn't hold up Java.

I don't anticipate any gRPC maintainers will work on this in the next few months.

ejona86 avatar Nov 03 '25 17:11 ejona86