explaingit

envoyproxy/envoy

📈 Trending28,108C++Audience · ops devopsComplexity · 4/5ActiveLicenseSetup · hard

TLDR

High-performance network proxy for microservices that routes traffic, balances load, and provides observability without requiring each service to handle networking logic.

Mindmap

mindmap
  root((Envoy))
    What it does
      Routes traffic
      Balances load
      Retries and timeouts
      Collects metrics
    Deployment modes
      Edge proxy
      Sidecar proxy
      Service mesh
    Tech stack
      C++ language
      Universal data plane API
      Cloud Native Computing Foundation
    Use cases
      Microservices communication
      Distributed systems
      Service mesh implementations
    Key features
      Dynamic configuration
      No service restarts
      Observable layer

Things people build with this

USE CASE 1

Route and load-balance traffic between microservices without modifying application code.

USE CASE 2

Implement a service mesh by deploying Envoy as a sidecar proxy next to each service.

USE CASE 3

Collect metrics, logs, and traces from all network traffic in a distributed system.

USE CASE 4

Handle retries, timeouts, and circuit breaking for resilient inter-service communication.

Tech stack

C++gRPCProtocol BuffersKubernetes

Getting it running

Difficulty · hard Time to first run · 1day+

Requires C++ compilation, Kubernetes cluster setup, and gRPC/protobuf toolchain configuration.

Use freely for any purpose, including commercial use, as long as you follow the Apache 2.0 license terms including attribution and notice of changes.

In plain English

Envoy is a high-performance network proxy designed for cloud-native applications, specifically for microservices architectures where many small services need to communicate reliably with each other. A proxy is software that sits between two systems and manages the traffic passing between them, handling things like routing, load balancing (distributing requests across multiple servers), retries, timeouts, and observability (collecting metrics and logs about what is happening). Envoy can operate in different roles: as an edge proxy (sitting at the boundary of your network handling external traffic), as a sidecar proxy (running alongside each individual service in your system), or in the middle of your network as a service mesh component. The "service mesh" pattern places a proxy next to every service so that all network communication goes through a controlled, observable layer without requiring each service to implement its own networking logic. It is written in C++ for performance and is hosted by the Cloud Native Computing Foundation (CNCF), the same organization that manages Kubernetes and other widely adopted infrastructure tools. It implements a standard called the universal data plane API, which means it can be dynamically configured and managed by a control plane without restarting. You would use Envoy if you are building or operating a large distributed system, one made of many small services, and you need a reliable, observable, and configurable layer to handle the network traffic between them. It is commonly used as a foundational component in service mesh implementations.

Copy-paste prompts

Prompt 1
How do I set up Envoy as a sidecar proxy for my microservices to handle traffic routing and load balancing?
Prompt 2
Show me how to configure Envoy to collect metrics and logs from all traffic between my services.
Prompt 3
What is the difference between using Envoy as an edge proxy versus a sidecar proxy in a service mesh?
Prompt 4
How can I dynamically reconfigure Envoy without restarting it using the universal data plane API?
Prompt 5
Help me integrate Envoy with Kubernetes to manage traffic for my containerized microservices.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.