Skip to main content

Architecture overview

Design philosophy​

ApiGo Cloud adopts a "design-time and runtime separation" architecture philosophy, decoupling API definition, governance and execution into different modules:

Core architectural ideas​

  1. Configuration and execution decoupling — ApiGo-admin does not handle externally exposed traffic; it is only responsible for API definitions and rule distribution. ApiGo-api focuses only on execution, and ApiGo-gateway provides unified governance
  2. Redis as the runtime configuration hub — configuration changes propagate quickly to the gateway and execution services through Redis, without restarts
  3. Extensible execution modes — with the ApiModeExecutor interface abstraction, adding a new API type only requires a new executor
  4. Governance front-loaded at the gateway — caching, IP control, logging, Mock and other processing are completed at the gateway layer, reducing duplicate implementations in execution services

Tech stack​

Backend​

TechnologyVersionPurpose
JDK21Runtime environment
Spring Boot4.1.0Application framework
Spring Cloud2025.1.2Microservice framework
Spring AI2.0.0AI query capability
Nacos2025.1.0.0Registry / configuration center
MyBatis4.0.1ORM framework
Druid1.2.28Database connection pool
Sentinel1.8.10Flow control and circuit breaking
JJWT0.13.0JWT authentication

Frontend​

TechnologyVersionPurpose
Vue3.5.xFrontend framework
Vite8.xBuild tool
Ant Design Vue4.2.xUI component library
Vuex4.1.0State management
LogicFlow-API orchestration flowchart engine
CodeMirror-SQL / JS code editor
AntV G2-Data visualization charts

Infrastructure​

ComponentMinimum versionPurpose
MySQL8.4Business database + log storage
Redis7.0Runtime configuration hub + cache
Elasticsearch7.0Call log storage (optional)
Nacos2.3Service registration and discovery
Node.js22+Frontend runtime environment

Configuration distribution and runtime sync​

  • LoadingData is responsible for full configuration loading at startup and on a schedule
  • ApiRuntimeCacheService incrementally syncs API details
  • RedisDataReconcile reconciles periodically to keep Redis consistent with the database

See Modules & execution engine for more module details.