跳到正文

运维

运维概览

go-sequent 在 PostgreSQL 上的生产运维手册:故障切换、读模型重建、备份恢复与分区,以及它们共同假设的锁定默认值。

运维概览

go-sequent 是一个库,跑在你自己的服务里、你自己的 PostgreSQL 上。这些手册覆盖运维真正需要盯的部分:故障切换时保持单写者、重建读模型、备份事件库,以及规模上来之后的分区。

手册

页面 主题
故障转移 PostgreSQL 主从说明与切换清单
读模型重建 prepare、replay、catchup、optimize、golive
备份与恢复 备份什么,以及如何做经过验证的恢复
分区 共享 schema 下的大规模分区

锁定默认值

所有手册都以这些决策为前提,详见 锁定决策。

  • 账本 Projector 以 SyncInTxn(写事务内同步更新读模型)运行,与事件在同一事务内。
  • 完整性靠按聚合的 hash chain(按聚合串联事件哈希,用来发现篡改),不做事件签名。
  • 多租户是共享 schema + tenant_id。
  • Outbox(事务内记待发消息,事后轮询投递)由轮询器消费。
  • go-sequent 永远不导入 Ruby Sequent 的数据库。

库提供什么

  • go-sequent migrate 应用 schema,见 Migrations 与 CLI。
  • projector/replay 提供读模型重建流水线。
  • Store 的 VerifyChain 方法与 LoadStream 上的校验用于发现篡改,见 EventStore。
  • obs 导出 OpenTelemetry 指标,包括 sequent.outbox.depth 与 sequent.optimistic_conflict.total,见 OpenTelemetry。

你需要提供什么

库不负责跑你的数据库。高可用、连接池、带时间点恢复的备份、静态加密与访问控制由你提供。各手册会说明 go-sequent 对其中每一项的期望。

文档随 go-sequent 源码更新;若与 API 不一致,以源码为准。