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 process
The diagram below shows how APISIX handles an incoming request and applies corresponding Plugins:
Plugin hierarchy
The chart below shows the order in which different types of Plugin are applied to a request: