后端从三种扩到五种,新增两个 SQL 后端;引入身份模型与周期硬配额。
仍是 v0 阶段,API 未冻结。
新功能
- 两个 SQL 后端:pgbroker(PostgreSQL)、mysqlbroker(MySQL),均为纯 Go 免 cgo,
多进程共享,认领互斥用 FOR UPDATE SKIP LOCKED(要求 PostgreSQL 9.5+ / MySQL 8.0+)。
至此五种后端(内存 / SQLite / Redis / PostgreSQL / MySQL)过同一套 brokertest 契约。 - 身份模型(spec 005):BusinessKey 业务幂等键、ExecutionID 执行标识、Replay 重放语义,
五个后端统一落地。 - 周期硬配额(spec 006):{QuotaLimit, QuotaPeriod} 限"每个固定窗口最多启动 N 次 handler",
跨进程共享计数、绝不超发,任何故障只少放行不多放;后端不支持共享计数时 New() 直接报错,
没有静默降级。QuotaProvider 能力接口,五后端落地。
文档
- README 中英文安装段补版本锁定说明:go get @latest / @vX.Y.Z 两种拉法,
以及 v0 阶段 API 未冻结、依赖锁在使用者 go.mod 的提示。 - README 更新模块路径与 SQL 后端说明;新增 MySQL/PG 后端适配方案文档。
测试与质量
- CI 补真 PostgreSQL / 真 MySQL 测试档。
- gofmt 全量对齐,过格式门。
其他
- 补充 Apache-2.0 许可证与 GitHub Actions CI(vet / gofmt / 竞态测试 + 真 Redis 契约档)。
- 项目宪法升到 v1.2.0:批准 SQL 驱动与门控例外。
说明:v0 阶段不承诺 API 稳定,小版本升级可能带来不兼容改动。
完整变更: v0.1.0 -> v0.2.0