Architecture
APISIX is built on top of Nginx and ngx_lua leveraging the power offered by LuaJIT. See Why Apache APISIX chose Nginx and Lua to build API Gateway?.
APISIX has two main parts:
- APISIX core, Lua plugin, multi-language Plugin runtime, and the WASM plugin runtime.
- Built-in Plugins that adds features for observability, security, traffic control, etc.
The APISIX core handles the important functions like matching Routes, load balancing, service discovery, configuration management, and provides a management API. It also includes APISIX Plugin runtime supporting Lua and multilingual Plugins (Go, Java , Python, JavaScript, etc) including the experimental WASM Plugin runtime.
APISIX also has a set of built-in Plugins that adds features like authentication, security, observability, etc. They are written in Lua.
#
Request handling processThe diagram below shows how APISIX handles an incoming request and applies corresponding Plugins:
#
Plugin hierarchyThe chart below shows the order in which different types of Plugin are applied to a request: