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?.

flow-software-architecture

APISIX has two main parts:

  1. APISIX core, Lua plugin, multi-language Plugin runtime, and the WASM plugin runtime.
  2. 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:

flow-load-plugin

Plugin hierarchy

The chart below shows the order in which different types of Plugin are applied to a request:

flow-plugin-internal