# 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](../07.Reference/7.01.Controllers.md). ### 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: ```yaml 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](../02.Tutorials/2.3.Pipeline-Explained.md). ### 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](../07.Reference/7.02.Filters.md).