System Architecture
A decoupled architecture separating the configuration management (Control Plane) from the high-performance traffic routing (Data Plane).
The Components
Control Plane
Comprising api-gateway-ui and ApiGatewayManagementSystem.
- Built for usability and consistency.
- Handles complex business rules.
- Manages user authentication and RBAC.
- Writes configurations to the Database.
Data Plane
Comprising the ApiReverseProxy.
- Built for high throughput and low latency.
- Reads configuration from Database/Cache.
- Performs rate limiting and security checks.
- Stateless and horizontally scalable.
Communication Patterns
The interaction between components is designed to be resilient and efficient:
Indirect Dependency (Shared DB)
The Control Plane and Data Plane do not talk to each other directly via HTTP. Instead, they share a PostgreSQL database. This ensures that the Data Plane remains functional even if the Management API is temporarily down.
Aggressive Caching
To avoid hitting the database for every incoming request, the ApiReverseProxy implements an aggressive in-memory cache for:
- Route configurations (matching URLs to upstreams).
- Consumer API keys and access permissions.
- Rate limiting quotas (partially synchronized via Redis if distributed).
Deployment Architecture
Public Internet
Load Balancer
Data Plane (Auto-scaling Proxy Group)
Node 1
Node 2
Node N
Horizontal Scaling based on CPU/Traffic
Your Backend Services