Concepts

Easegress operates on the foundational concepts of controllers, pipelines, and filters.

Controllers

The Easegress controller is the central unit responsible for various operations. Different controllers perform specific tasks; for example, the HTTPServer controller handles HTTP traffic. These controllers can be created, updated, edited, or deleted using egctl commands along with YAML files.

Controllers like ConsulServiceRegistry, EtcdServiceRegistry, EurekaServiceRegistry, ZookeeperServiceRegistry, and NacosServiceRegistry are specialized for service registry tasks.

Others, such as HTTPServer and GRPCServer, focus on managing network traffic.

Still others, like AutoCertManager and GlobalFilter, are designed to handle specific business logic.

For more information, refer to controllers.

Pipelines

The Pipeline is a built-in Easegress mechanism designed to orchestrate a sequence of filters for handling requests. It often operates in conjunction with HTTPServer and serves as its backend. The pipeline comprises a flow of filters executed in a defined sequence.

A sample configuration might look like:

name: pipeline-demo
kind: Pipeline
flow:
- filter: validator
- filter: proxy
...

filters:
- name: validator
  kind: Validator
  ...
- name: proxy
  kind: Proxy
  ...
...

For more information, refer to pipeline explained.

Filters

A Filter acts as a processor for handling requests and responses. In a pipeline, multiple filters are orchestrated to process the input sequentially, each returning a string result upon completion. Filters are primarily utilized within Pipelines.

For instance, the Proxy filter serves as a gateway to backend services, while the RateLimiter filter enhances service reliability and availability by regulating the rate of incoming requests within a specified time frame.

For more information, refer to filters.