# 独立 MySQL Inbox 示例 这是接收方应用示例,使用正式 Orbit Go SDK 和自己的 MySQL 数据库。核心 SDK 不依赖数据库驱动;示例是独立 Go module,通过本地 replace 引用 SDK。 完整前置、调用、输出、故障处理与事务边界见 [运行手册](../../docs/examples/result-inbox.md)。 先按运行手册创建带 `--event-access` 的专用平台凭据及独立空业务库。从仓库根目录执行(DSN 替换为实际配置): ```sh export ORBIT_URL=http://127.0.0.1:8080 export ORBIT_CREDENTIALS_FILE="$PWD/.local/inbox.credentials.json" export ORBIT_RECEIVER_DSN='user:password@tcp(127.0.0.1:3306)/receiver_example' cd examples/result-inbox GOWORK=off go run ./cmd/receiver init GOWORK=off go run ./cmd/receiver demo ``` - `init`:使用 ORBIT_RECEIVER_DSN 初始化专用空数据库,不自动升级已有表。 - `demo`:使用事件凭据和隔离队列产生结果,验证两次业务处理只推进一次,再确认并暂停本次订阅。 - `consume`:消费 ORBIT_SUBSCRIPTION_ID 指定的已有订阅,RECEIVER_NAME 在重启和多实例之间保持固定。 [业务事务](internal/inbox/store.go) 同时写入 [Inbox 与视图](internal/inbox/schema.sql),两张表、17个中文字段注释、零外键。模型见 [model.go](internal/inbox/model.go)。 根目录 `make test/vet/build` 包含本模块;`make integration` 创建独立临时数据库,运行数据库、COMMIT响应丢失、真实消费者强杀回归和demo,结束清理自建容器。未设置集成环境时普通go test跳过外部测试,不表示这些故障已经验证。 预期 demo 输出 `inbox_duplicate=true applied_events=1` 和 `ack_confirmed=1 pending=0`。`init` 仅运行一次;连续消费另行配置持久的 `ORBIT_SUBSCRIPTION_ID`、`RECEIVER_NAME`,再运行 `GOWORK=off go run ./cmd/receiver consume`。完整命令见运行手册;不要用重复运行 demo 替代持续消费。