gRPC Mirroring
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.
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.