A proxy is an intermediary between a source (typically, a client) and a destination (typically, a server-based application). When a proxy is deployed, all traffic between a client and server is routed through a proxy. In this architecture, a proxy is able to manage and observe all network traffic between the client and server.
Cloud-native applications rely heavily on network communication between services. As such, proxies are commonly used to provide a language-neutral way to introduce and enforce common network-level policies such as timeouts, load balancing, and circuit breaking. Proxies can also be used to enhance visibility into network traffic.