Operations
Operations overview
Production runbooks for go-sequent on PostgreSQL: failover, projection rebuild, backup and restore, and partitioning, with the locked defaults they all assume.
Operations overview
go-sequent is a library, so you run it inside your own service on your own PostgreSQL. These runbooks cover the parts that need an operator’s attention: keeping a single writer through failover, rebuilding read models, backing up the event store, and partitioning at scale.
Runbooks
| Page | Topic |
|---|---|
| Failover | PostgreSQL primary and replica notes, and a failover checklist |
| Projection rebuild | prepare, replay, catchup, optimize, golive |
| Backup and restore | What to back up and how to run a verified restore |
| Partitioning | Shared-schema partitioning at scale |
Locked defaults
Every runbook assumes these decisions. They are explained in Locked decisions.
- Ledger projectors run as
SyncInTxn, in the same transaction as the events. - Integrity is a per-aggregate hash chain. There are no event signatures.
- Tenancy is a shared schema with
tenant_id. - The outbox is a Postgres table that a poller drains.
- go-sequent never imports a Ruby Sequent database.
What the library gives you
go-sequent migrateapplies the schema. See Migrations and CLI.projector/replayprovides the rebuild pipeline.- The store’s
VerifyChainmethod and the check onLoadStreamdetect tampering. See Event store. obsexports OpenTelemetry metrics, includingsequent.outbox.depthandsequent.optimistic_conflict.total. See OpenTelemetry.
What you provide
The library does not run your database. You supply high availability, connection pooling, backups with point-in-time recovery, encryption at rest, and access control. The runbooks tell you what go-sequent expects from each.
Docs track the go-sequent library. When APIs drift, the source wins.