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.
APISIX also has a set of built-in Plugins that adds features like authentication, security, observability, etc. They are written in Lua.
The diagram below shows how APISIX handles an incoming request and applies corresponding Plugins:
The chart below shows the order in which different types of Plugin are applied to a request: