组合
从轻量核心开始,按需接入能力
核心负责应用启动、依赖注入、命令和生命周期,路由、缓存、队列、数据库、认证、存储等能力按需安装,业务代码通过 Module 组织
runa · 内核+
routegrpc · 规划中wsjsonrpccachequeuedatabasesessionauthstoragelockrateeventtaskschedulerediss3oronats
传输能力驱动
供应链
用到什么,才引入什么
模块边界跟着 import 走,没有接入的能力不会把第三方依赖带进 go.sum,小项目保持轻量,大项目也能稳步扩展
微内核框架
只保留应用骨架和命令入口
runa · 应用内核config · 配置加载command · 命令入口lifecycle · 启停编排
按需引入
需要什么能力,就安装什么能力包
runa · 内核route · HTTP 入口cache / queue · 缓存与队列database / storage · 数据与存储
架构
层次清晰,依赖单向
驱动、能力、传输都只向下依赖核心,内核不反向感知上层模块,项目越长越不容易乱
驱动redis · s3 · oro · nats · amqp · mqtt
能力cache · queue · database · session · auth · storage · …
传输route(HTTP) · ws · jsonrpc · grpc(规划中)
内核加载 · 依赖注入 · 生命周期 · 命令 · Host · 配置
生命周期
所有能力,都走同一套生命周期
能力和 Module 按顺序进入 Init、Register、Resolve、Boot 和 Shutdown,应用启动和关闭都有明确顺序
Init→Register→Resolve→Boot→Shutdown
不止于 HTTP
面向 Web,也能运行后台服务
HTTP 是常用入口,但内核不绑定 HTTP,你可以接入路由服务,也可以只运行命令、队列 worker 或其他 Host
HTTP通过 route 提供强类型路由、域和中间件
gRPC规划中的传输块,作为 Host 接入内核
WebSocket提供 Hub 与广播能力,可通过 redis 横向扩展
JSON-RPC可运行在 HTTP 或 WebSocket 上,并挂载到 route