The documentation for Connect’s mesh gateway feature mentions several caveats regarding Envoy.
Consul can only translate the gateway registration information into Envoy configuration, so any sidecars that send upstream traffic through a gateway must be Envoy.
I’m interested in whether “native” applications can participate with mesh gateways and, more broadly, to what extent “native” applications differ from the first-class citizens in a Connect mesh that use Envoy sidecar proxies.
- Can a “native” application that’s a client of an upstream service contact such a service in a different data center by way of a mesh gateway? Would it need to do anything special to have its connections and traffic find such a distant target?
- Can a “native” application that’s a server receive traffic from downstream clients in different data centers by way of a mesh gateway?
We are considering when we’re willing to tolerate using sidecar proxies, and in many cases would prefer to write our applications as “native” Connect participants. What can’t we do in that model that we could otherwise do with proxies?