# Orbit · 星轨 Orbit 是面向多个业务项目的通用任务调度与流程编排平台,采用 **Go + MySQL + HTTP/WebSocket**。 - **Pulse · 脉动**:异步任务、定时调度、执行授权与安全重试。 - **Weave · 织流**:研发定义发布流程,管理步骤、等待、有界查询与恢复。 - 业务处理器运行在接入方 Worker 中;平台不内置行业规则。 ## 当前进度 已实现 30 个数据模型、版本化迁移、凭据及范围校验、队列创建查询、任务幂等提交/查询/分页/待执行取消,以及独立 Go SDK 和可运行示例。WSS Worker、调度器和流程执行引擎按 [持续开发计划](docs/08-development-plan.md) 继续实现。 readiness 只表示数据库与迁移记录可用,不表示完整平台已具备生产服务能力。验证证据见 [P0](docs/reports/phase-0.md) 与 [P1 报告](docs/reports/phase-1.md)。 ## 目录 ```text cmd/orbit/ 基础 HTTP 服务入口 cmd/orbit-migrate/ 独立数据库迁移命令 cmd/orbit-admin/ 受控初始化与私密凭据交付 model/ 公共 ID、JSON、摘要与记录原语 platform/model/ 应用、命名空间、幂等、事件和审计 platform/auth/ 凭据格式与动作/队列授权范围 pulse/model/ 任务、尝试、队列、计划和执行许可 pulse/service/ 任务与队列应用契约、输入校验 weave/model/ 定义、实例、步骤、信号和查询轮次 internal/config/ 配置校验 internal/storage/mysql/ 连接、事务、迁移及集成测试 internal/transport/httpserver/ HTTP 接入 sdk/go/ 独立 Go SDK module 与示例 scripts/ 可复现的回归工具 docs/ 设计、接口、SDK、场景与验证报告 ``` ## 本地运行 要求 Go 1.27.1、MySQL 8.4+。先准备专用数据库和凭据,通过环境变量注入;程序不会自动读取 `.env` 文件。 ```sh export ORBIT_MYSQL_DSN='user:password@tcp(127.0.0.1:3306)/orbit' export ORBIT_HTTP_ADDR='127.0.0.1:8080' go run ./cmd/orbit-migrate up go run ./cmd/orbit ``` 上方 DSN 为本地占位示例,需替换为实际凭据。部署时使用秘密管理和经过验证的 TLS 配置;迁移账户与运行账户分开授权。运行程序不自动迁移数据库。 另一个终端执行 SDK 示例: ```sh cd sdk/go ORBIT_URL=http://127.0.0.1:8080 go run ./examples/health ``` 任务接入从 [初始化凭据](docs/api/authentication.md) 开始,再按 [SDK 接入](docs/sdk/README.md) 运行任务示例。它会实际提交、重复确认、查询并取消一个任务;当前阶段尚不执行业务处理器。 ## 开发与回归 ```sh make fmt make test make vet make build make integration ``` `make integration` 要求 Docker、OpenSSL 等标准命令,启动独立的临时 MySQL 容器,使用随机凭据和回环随机端口;完成后删除该测试容器。不会连接已有业务数据库。可通过 `GO`、`DOCKER` 和 `ORBIT_TEST_MYSQL_IMAGE` 指定工具/测试镜像。 修改已应用迁移时会触发校验和拒绝;新增结构使用新的前向迁移。初始结构尚未部署生产。 ## 文档入口 - [持续开发与回归计划](docs/08-development-plan.md) - [数据模型与约束](docs/07-data-model.md) - [HTTP / WebSocket 接口手册](docs/api/README.md) - [Go SDK 接入](docs/sdk/README.md) - [通用场景示例](docs/examples/README.md) - [设计文档总览](docs/README.md) Git 远端:`https://git.yuntuo.hk/k2safe/orbit.git`。当前在本地开发分支推进,SDK 尚未发布版本。