Skip to content

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 migrate applies the schema. See Migrations and CLI.
  • projector/replay provides the rebuild pipeline.
  • The store’s VerifyChain method and the check on LoadStream detect tampering. See Event store.
  • obs exports OpenTelemetry metrics, including sequent.outbox.depth and sequent.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.