Skip to main content
Account

BFE

BFE is a CNCF sandbox Layer 7 load balancer from Baidu, written in Go. Learn how its routing expressions and Go filter chain compare with Nginx and Envoy.

Status
Stable
Category
Orchestration & Management
Subcategory
Service Proxy
License
Apache-2.0
Technology matrix Skip Just not for me See the matrix

BFE (Beyond Front End) is a Layer 7 reverse proxy and load balancer written in Go, originally developed at Baidu where it handles the bulk of the company’s front-door traffic β€” reportedly over a trillion requests per day. It was open sourced in 2019 and donated to the CNCF as a sandbox project in 2020.

Architecturally BFE sits in the same category as Nginx, HAProxy, and Envoy: terminate TLS, parse HTTP/HTTPS/HTTP/2/HTTP/3 requests, run them through a rules engine, and forward to a backend cluster. Its distinguishing features are a condition-expression-based routing language (req_host_in("example.com") && req_path_prefix_in("/api")) instead of Nginx-style location blocks, and a modular pluggable filter chain that lets you add request/response processing in Go without forking the proxy. It supports multi-tenancy with per-tenant config, health checks, connection pooling, dynamic config reload, and active/passive backend probing.

In practice BFE is an interesting alternative if you want an Nginx-class edge proxy written in Go that you can extend in Go, but outside of Baidu and a few other large Chinese deployments adoption is limited. For most teams, Envoy (plus a control plane like Istio or Contour) or Nginx remain the default choices.

Service Proxy

Email signup loads here. You can also manage email preferences in account settings.

Build BFE? I'll show you where engineers get stuck with it β†’ Back free content for the community β†’