Skip to main content
Version: 3.9.x

Architecture

API7 Enterprise is a suite of API management components, including API7 Gateway as its traffic processing layer. API7 Gateway uses a decoupled architecture that separates the management logic (Control Plane) from the request processing logic (Data Plane). This design ensures high availability, security isolation, and independent scalability.

Decoupled architecture​

Data Plane deployments generated by the Dashboard connect to the Control Plane over mTLS on port 7943. The DP Manager also accepts HTTP connections without transport encryption on port 7900 for compatibility, so restrict that path to trusted networks. The decoupled architecture allows the Control Plane and Data Plane to run in different environments or regions.

Control plane (CP)​

The control plane is the management hub for API7 Gateway. It is a Go-based service that provides the following components:

  • Dashboard and Admin API: Provides a web-based interface and a RESTful API for managing all gateway configurations. Default port is 7443 (HTTPS).
  • PostgreSQL Database: Stores all persistent configurations, including services, routes, consumers, and audit logs. PostgreSQL is the primary and recommended storage backend; the Control Plane also supports MySQL and Microsoft SQL Server as alternative backends — see Supported Versions and Interoperability for details.
  • DP Manager: Exposes an etcd v3–compatible API on port 7943 with mTLS. It also accepts HTTP connections on port 7900 for compatibility, using an instance token for authentication. Internally, the DP Manager serves this API through an embedded kine shim backed by the Control Plane database, so data plane nodes can use the standard Apache APISIX etcd client to watch configuration without requiring an etcd cluster.

Data plane (DP)​

The data plane is the high-performance proxy engine that processes incoming API requests. It is built on OpenResty and Lua.

Core components​

  • Proxy Engine: Handles HTTP, HTTPS, gRPC, and TCP/UDP traffic. Default ports are 9080 (HTTP) and 9443 (HTTPS).
  • Stateless Operation: Data plane nodes are stateless. They receive configuration from the control plane and store it in memory for fast access.
  • EE Agent: A specialized component (agent/hook.lua) that handles communication with the control plane, manages shared dictionaries for discovery data, and merges configuration updates.

Health and observability​

  • Health Endpoints: When the status listener is enabled, each DP node provides /status (liveness) and /status/ready (readiness) on the configured address and port. The gateway Helm chart enables this listener through api7ee.status_endpoint.enabled; api7ee.status_endpoint.port selects the port and defaults to 7085. The listener is disabled by default.
  • Prometheus Metrics: Metrics are exposed on port 9091 at /apisix/prometheus/metrics.

CP–DP communication​

API7 Gateway uses the same pull/watch model as open-source Apache APISIX for configuration synchronization. Each data plane node runs the standard APISIX etcd client and connects outbound to the DP Manager. Dashboard-generated deployments use port 7943 over mTLS. The DP Manager also accepts HTTP connections on port 7900 with instance-token authentication, but those connections are not encrypted. Once connected, the data plane watches the etcd-compatible key space for configuration changes and applies them to its in-memory cache as soon as they arrive.

The only difference from upstream APISIX is the storage backend: instead of a real etcd cluster, the DP Manager uses kine to translate the etcd v3 API to PostgreSQL reads and writes. From the data plane's perspective, the DP Manager behaves exactly like an etcd cluster.

Secure communication​

On port 7943, the data plane presents a client certificate issued by API7's internal CA. The DP Manager validates that certificate before serving configuration data, and the data plane validates the server certificate against its configured CA. Use this mTLS listener for production deployments. Restrict HTTP port 7900 with firewall rules or network policies, and never expose it to the public internet.

Fault tolerance​

Because the data plane holds the last-known configuration in memory (and, optionally, on disk), it continues to serve traffic if the control plane becomes unreachable. Only administrative tasks — publishing new routes, adding consumers, rotating certificates — are blocked until the control plane is restored. For enhanced resilience, you can also configure a fallback configuration provider that lets the data plane survive extended CP outages.

Comparison: Open-Source vs. Enterprise​

FeatureOpen-Source APISIXAPI7 Enterprise
Primary storageStandalone etcd clusterPostgreSQL (via kine etcd shim)
Config API exposed to DPetcd v3 (native)etcd v3 (compatible, backed by PostgreSQL)
Config sync modelPull / watchPull / watch (identical semantics)
CP–DP transportPlain etcd client over gRPC or HTTPDashboard-generated deployments use mTLS on port 7943. Port 7900 accepts HTTP with instance-token authentication and should be restricted to trusted networks
Management surfaceAdmin APIDashboard + Admin API + ADC
ScalingScale etcd cluster and DP independentlyScale PostgreSQL, CP, and DP independently

Next steps​