envoyproxy/envoy
Glossary
Envoy has a lot of acronyms. This page is a fast lookup for the ones that appear repeatedly in the codebase. Each entry points at the file that introduces or implements the concept.
Core architecture
| Term | Expansion / meaning |
|---|---|
| Listener | A named entity that owns a socket on a specific address and runs a chain of filters on each accepted connection. Public interface: envoy/network/listener.h. Implementation: source/common/listener_manager/. |
| Cluster | A logical group of upstream hosts plus the policy for sending traffic to them (load balancing, circuit breaking, health checking, transport socket). Interface: envoy/upstream/cluster_manager.h. |
| Endpoint | A single network address belonging to a cluster, possibly with locality and weight metadata. |
| Filter chain | An ordered list of filters that runs over either a connection (network/listener filters) or a request (HTTP filters). |
| HCM | HTTP Connection Manager. The network filter that owns the HTTP/1, HTTP/2, or HTTP/3 codec and runs the L7 filter chain. See source/extensions/filters/network/http_connection_manager/. |
| Route | A match-and-action rule that maps a request to a cluster (or redirect/direct response). Routes are grouped into virtual hosts inside a RouteConfiguration. |
| Connection pool | Per-host pool of upstream connections, keyed by protocol and transport socket. Implementation in source/common/conn_pool/ and source/common/http/conn_pool_*. |
| Transport socket | The pluggable layer that wraps raw bytes (raw TCP, TLS, ALTS, proxy_protocol, …). See envoy/network/transport_socket.h. |
| Worker | A thread that owns a slice of the listeners and runs their filter chains. See source/server/worker_impl.h. |
| Dispatcher | The libevent/io_uring-based event loop running on each thread. Interface: envoy/event/dispatcher.h. |
| TLS slot | "Thread-local storage" — a copy-on-write piece of state replicated to every worker for lock-free reads. See envoy/thread_local/thread_local.h. |
xDS — discovery services
xDS is the family of gRPC APIs Envoy uses to receive dynamic configuration from a control plane. Every "x" is a kind of resource:
| API | Resource | Wire definition |
|---|---|---|
| LDS | Listener Discovery Service | api/envoy/service/listener/v3/lds.proto |
| CDS | Cluster Discovery Service | api/envoy/service/cluster/v3/cds.proto |
| RDS | Route Discovery Service | api/envoy/service/route/v3/rds.proto |
| EDS | Endpoint Discovery Service | api/envoy/service/endpoint/v3/eds.proto |
| SDS | Secret Discovery Service (TLS certs, JWTs) | api/envoy/service/secret/v3/sds.proto |
| RTDS | Runtime Discovery Service | api/envoy/service/runtime/v3/rtds.proto |
| ECDS | Extension Config Discovery Service (per-filter config) | api/envoy/service/extension/v3/config_discovery.proto |
| VHDS | Virtual Host Discovery Service (incremental RDS) | Embedded in RDS |
| ADS | Aggregated Discovery Service — multiplexes the above onto a single bidi gRPC stream | api/envoy/service/discovery/v3/ads.proto |
| Delta xDS | Incremental variant of every xDS API; only changed resources are sent | Same proto package, different RPC method |
The client implementations are in source/extensions/config_subscription/.
Protocols
| Term | Meaning |
|---|---|
| HTTP/1.1 | Implemented by source/common/http/http1/ on top of http-parser. |
| HTTP/2 | Implemented by source/common/http/http2/ on top of nghttp2 (legacy) and the oghttp2 codec. |
| HTTP/3 | QUIC + HTTP/3 via google's QUICHE. Code in source/common/quic/ and source/extensions/quic/. |
| gRPC | Two client implementations: Envoy-native ("Envoy gRPC") and Google C++ core ("Google gRPC"). See source/common/grpc/. |
| QUIC | Datagram protocol underlying HTTP/3. |
Process lifecycle
| Term | Meaning |
|---|---|
| Hot restart | Live binary upgrade: a new Envoy starts, takes over listeners from the old one over a Unix domain socket, then the old one drains and exits. See source/server/hot_restart_impl.cc and the hot restart page. |
| Drain manager | Tracks the multi-stage drain sequence applied during shutdown or listener removal. source/server/drain_manager_impl.cc. |
| GuardDog | Watchdog thread that kills the process if a worker's event loop is stuck longer than miss/megamiss thresholds. source/server/guarddog_impl.cc. |
| Overload manager | Reads pressure from resource monitors and applies actions (e.g. shedding load, stopping accepting). source/server/overload_manager_impl.cc. |
| Init manager | Tracks initialization targets that must complete before a server, listener, or cluster can serve traffic. source/common/init/manager_impl.cc. |
Observability
| Term | Meaning |
|---|---|
| Stat sink | Pluggable destination for periodically-flushed stats (statsd, dog_statsd, metrics_service, hystrix, …). |
| Symbol table | Compact, deduped storage for stat names. source/common/stats/symbol_table.cc. |
| Tracer | Pluggable span exporter (Datadog, OpenTelemetry, Zipkin, SkyWalking, X-Ray, Fluentd). |
| Access log | Per-request log line emitted by listeners, HCM, TCP proxy, and most filters. |
| Stream info | Per-request metadata bag exposed to filters and access log formatters. envoy/stream_info/stream_info.h. |
Build and project terms
| Term | Meaning |
|---|---|
| Bootstrap | The root protobuf config. api/envoy/config/bootstrap/v3/bootstrap.proto. |
| Contrib | Extensions held to a looser maintenance bar; built into a separate envoy-contrib binary. See EXTENSION_POLICY.md. |
| Wasm | WebAssembly — runtime for sandboxed plugins; runtimes in source/extensions/wasm_runtime/. |
| Dynamic module | C ABI extension dlopen'd at runtime. See source/extensions/dynamic_modules/ and the dynamic modules feature page. |
API alpha (v3alpha etc.) |
New API version under design. See api/API_VERSIONING.md. |
| Runtime | Key/value flag store consulted at request-time for feature flags and gradual rollout. See source/common/runtime/runtime_impl.cc. |
| DCP | Data plane / control plane (in conversation, not in code). |
| OWNERS / CODEOWNERS | Contributor governance. OWNERS.md lists humans, CODEOWNERS maps directories to GitHub teams. |
Related reading
The user-facing version of this glossary is at envoyproxy.io/docs/envoy/latest/intro/arch_overview/intro/terminology. It explains operator-facing concepts (rate limiting, circuit breakers, retries) that are out of scope for the source-tree wiki.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.