Files
orbit/README.md

76 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Orbit · 星轨
Orbit 是面向多个业务项目的通用任务调度与流程编排平台,采用 **Go + MySQL + HTTP/WebSocket**。
- **Pulse · 脉动**:异步任务、定时调度、执行授权与安全重试。
- **Weave · 织流**:研发定义发布流程,管理步骤、等待、有界查询与恢复。
- 业务处理器运行在接入方 Worker 中;平台不内置行业规则。
## 当前进度
已建立基础 Go 骨架、30 个数据模型、MySQL 初始迁移、事务工具、HTTP 健康检查与独立 SDK 健康客户端。任务 API、WSS Worker、调度器和流程执行引擎尚未实现,按 [持续开发计划](docs/08-development-plan.md) 推进。
当前健康接口的 readiness 只表示数据库与迁移记录可用,不表示完整平台已具备生产服务能力。验证证据见 [P0 报告](docs/reports/phase-0.md)。
## 目录
```text
cmd/orbit/ 基础 HTTP 服务入口
cmd/orbit-migrate/ 独立数据库迁移命令
model/ 公共 ID、JSON、摘要与记录原语
platform/model/ 应用、命名空间、幂等、事件和审计
pulse/model/ 任务、尝试、队列、计划和执行许可
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
```
## 开发与回归
```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 尚未发布版本。