xataio/pgstream

Add phase visibility for `snapshot_and_replication` mode

Closed

#984 opened on Jul 9, 2026

 (1 comment) (1 reaction) (0 assignees)Go (66 forks)auto 404
good first issuereplicationsnapshot

Repository metrics

Stars
 (1,151 stars)
PR merge metrics
 (PR metrics pending)

Description

Problem

In snapshot_and_replication mode, there's no queryable way to tell whether the process is doing the initial snapshot or logical replication. The only signal is the ordered log sequence: initial snapshot enabled → snapshot generation completed → logical replication started.

pgstream status doesn't help: it's a static config/init check against Postgres (not the running process), and its Status struct has no phase field.

Proposal

Expose the current phase (snapshot | replication) as a queryable signal. Preferred: a /status endpoint on the existing health server (cmd/health_cmd.go:32), and OTel phase gauge, or enriching pgstream status to read slot active/confirmed_flush_lsn.

Requirements

  • Operator can tell snapshot vs streaming phase without reading logs.
  • Signal flips at logical replication started.
  • Works for all pgstream modes, not just snapshot_and_replication

Contributor guide