- Home
- Change Data Capture Software
- pgstream
pgstream
What it is
pgstream is a free, open-source tool for replicating PostgreSQL data and schema changes to other targets. It runs as a command-line application or can be embedded as a Go library, making it useful for keeping staging databases in sync with production or loading target systems from snapshots. Built-in destinations include PostgreSQL, Elasticsearch and OpenSearch, Kafka, and webhooks. It can take an initial snapshot or create one on demand, and tracks DDL changes so downstream systems can follow table changes. During replication, column values can be transformed with greenmask, neosync, go-masker, or custom transformers, including for masking production data sent to development or staging. Kafka support includes schema-based partitioning. pgstream is self-hosted, requires PostgreSQL, and does not require ZooKeeper or Kafka. Installation options include a Go binary, building from source, and Homebrew on macOS or Linux. It is licensed under Apache License 2.0 and costs nothing.
For and against
For
- Runs as a CLI or Go library.
- Supports snapshots and schema change replication.
- Targets include PostgreSQL, Kafka, and webhooks.
- Column transformations support data masking.
- Free and licensed under Apache 2.0.
Against
- Requires PostgreSQL.
- No row-level filtering.
- Supports only one Kafka topic.
- Requires a primary key or unique non-null column.
The verdict
pgstream combines data replication, schema tracking, snapshots, and column transformation in a self-hosted tool. Its initial-release limits, including no row-level filtering and one Kafka topic, are important to check against a deployment's needs.
Who it suits
pgstream suits teams that need to replicate PostgreSQL changes to other systems or keep staging data current. It can also suit Go developers who want to embed replication in an application.
Plans and prices
pgstream
Open-source CDC CLI and Go library · Apache 2.0 license
Read 4 Oct 2026 · xata.io
On the record
- Anonymization
- Column values can be transformed during replication using greenmask, neosync, or go-masker integrations.xata.io · read 4 Oct 2026
- DDL tracking
- It tracks and replicates schema changes alongside data changes so downstream targets can follow table changes.xata.io · read 4 Oct 2026
- Deployment
- pgstream can run as a standalone CLI or be embedded as a Go library, and requires PostgreSQL as a dependency.xata.io · read 4 Oct 2026
- Deployment dependency
- The product page says pgstream requires PostgreSQL as its only dependency and does not require ZooKeeper or Kafka.xata.io · read 4 Oct 2026
- Installation
- The project provides a Go binary and Docker image, and its repository documents installation with Go, source builds, and Homebrew on macOS or Linux.github.com · read 4 Oct 2026
- Intended use
- The product page describes using pgstream to keep staging databases in sync with production and to bootstrap targets with snapshots.xata.io · read 4 Oct 2026
- Interfaces
- pgstream can run as a standalone CLI tool or be embedded as a Go library.xata.io · read 4 Oct 2026
- Kafka support
- Kafka support includes schema-based partitioning.xata.io · read 4 Oct 2026
- License
- The project is licensed under Apache License 2.0.github.com · read 4 Oct 2026
- Limitations
- The README lists single Kafka topic support, wal2json-only Postgres plugin support, no row-level filtering, and a primary-key or unique non-null column requirement as limitations of the initial release.github.com · read 4 Oct 2026
- Maker founded
- Xata says it formed in 2021.xata.io · read 4 Oct 2026
- Maker security
- Xata states that it is SOC 2, HIPAA, and GDPR compliant; this statement describes Xata and does not specify pgstream as a separately certified product.xata.io · read 4 Oct 2026
- Purpose
- pgstream is an open-source CDC tool for replicating PostgreSQL data and DDL schema changes to targets.xata.io · read 4 Oct 2026
- Schema changes
- It tracks and replicates schema changes alongside data changes.xata.io · read 4 Oct 2026
- Security
- The product page describes built-in anonymization for masking production data as it is replicated to development or staging.xata.io · read 4 Oct 2026
- Snapshots
- It supports initial and on-demand PostgreSQL snapshots for bulk loads or point-in-time copying without continuous replication.xata.io · read 4 Oct 2026
- Support
- The project README directs users with questions or issues to open a GitHub issue for community assistance.github.com · read 4 Oct 2026
- Targets
- Built-in targets include PostgreSQL, Elasticsearch/OpenSearch, Kafka, and webhooks.xata.io · read 4 Oct 2026