FREEDOM251

Freedom251 › Change Data Capture Software

pgstream

Free plan LinuxMacSelf-hosted

Visit pgstream Alternatives Pricing

pgstream's own site

What pgstream is

pgstream is an open-source change data capture tool for replicating PostgreSQL data and database structure changes to other targets. It can run as a standalone command-line application or be embedded as a Go library. Built-in destinations include PostgreSQL, Elasticsearch and OpenSearch, Kafka, and webhooks. It can take initial and on-demand snapshots for bulk loads or point-in-time copies, while tracking schema changes alongside data so downstream targets can follow table updates. 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. pgstream is self-hosted, free, and licensed under Apache License 2.0. PostgreSQL is its only dependency; it does not require ZooKeeper or Kafka. Installation options include a Go binary, building from source, or Homebrew on macOS or Linux. Initial-release limitations include support for one Kafka topic, only the wal2json PostgreSQL plugin, no row-level filtering, and a requirement for a primary key or unique non-null column. Community questions and issues are directed to GitHub issues.

Who it suits

pgstream suits developers and data teams that need PostgreSQL changes replicated to other systems, or staging databases kept in sync with production. It is intended for self-hosted use by people comfortable with a CLI or Go library.

What it does well

  • Replicates both data and schema changes.
  • Supports PostgreSQL, Elasticsearch/OpenSearch, Kafka, and webhooks.
  • Offers initial and on-demand snapshots.
  • Column values can be transformed during replication.
  • Free and licensed under Apache License 2.0.

What to know first

  • Supports only one Kafka topic.
  • Supports only the wal2json PostgreSQL plugin.
  • Does not provide row-level filtering.
  • Requires a primary key or unique non-null column.

Limits

The initial release supports one Kafka topic and only the wal2json PostgreSQL plugin. It has no row-level filtering and requires a primary key or unique, non-null column.

Plans

PlanBilled and limitsPrice
pgstreamOpen-source CDC CLI and Go library · Apache 2.0 licenseFree

As xata.io lists them, read 4 Oct 2026. The maker's own page has the final word.

Getting started

  1. Visit the pgstream project page.
  2. Choose a Go binary, build from source, or use Homebrew on macOS or Linux.
  3. Ensure PostgreSQL is available as the dependency.
  4. Run pgstream as a standalone CLI or embed it as a Go library.
  5. Configure a target such as PostgreSQL, Elasticsearch, OpenSearch, Kafka, or a webhook.

pgstream is a free, open-source CDC tool for teams that need PostgreSQL changes delivered to downstream systems they operate. It is best suited to PostgreSQL users who value schema tracking, snapshots and data masking; its initial-release constraints make it a poor fit for pipelines that need row filtering or broader Kafka topic support.

Overview

pgstream captures PostgreSQL changes from the transaction log and sends data and schema changes to PostgreSQL, Elasticsearch or OpenSearch, Kafka, and webhooks. Carrying DDL alongside row changes is useful when downstream tables must keep pace with changes to the source schema.

Teams can run it as a standalone CLI or embed it as a Go library. PostgreSQL is its only dependency, and it does not require ZooKeeper or Kafka, even when Kafka is a target. That keeps the stated infrastructure requirements narrow, but this is self-hosted software: users are responsible for running it with their PostgreSQL environment. The Apache License 2.0 permits use without a subscription.

Key features

Snapshots and change capture

Initial snapshots can seed a target with a bulk load; on-demand snapshots support point-in-time copies. Log-based capture then handles ongoing changes. This combination suits teams bootstrapping a destination or keeping staging databases aligned with production without treating initial loading and replication as separate problems.

Schema changes and destinations

Tracking DDL as well as data changes can reduce the risk of downstream targets falling out of step when tables change. Built-in destinations cover PostgreSQL, Elasticsearch and OpenSearch, Kafka, and webhooks. Kafka support includes schema-based partitioning, but the initial release supports only a single Kafka topic, which limits its usefulness for workloads organized across multiple topics.

Value transformation

Column values can be transformed during replication with greenmask, neosync, go-masker, or custom transformers. That gives teams a way to mask production data as it reaches development or staging. It does not provide row-level filtering, so teams that need to exclude selected records cannot rely on that capability in the initial release.

Operational constraints

The initial release supports only the wal2json PostgreSQL plugin. Tables also need a primary key or a unique, non-null column. These requirements are consequential for existing databases: sources that do not meet the key requirement need attention before pgstream can serve them, and the plugin restriction narrows compatibility choices.

Pricing

pgstream — free. The free plan includes the open-source CDC CLI and Go library under Apache 2.0. There is no paid tier described; the trade-off is not a subscription cap but the need to self-host and work within the initial-release limitations. It fits teams comfortable operating their own replication tooling, while teams seeking managed operations should look elsewhere.

Platforms

pgstream supports Linux and macOS and is self-hosted. Installation options include a Go binary, building from source, and Homebrew on macOS or Linux. Its CLI and Go library formats suit teams that want either a direct command-line workflow or integration into Go software.

Who it's for

pgstream is a strong match for teams replicating PostgreSQL into supported targets, especially when they need schema changes to travel with data, snapshots to bootstrap destinations, or masking during production-to-staging replication. It is less suitable for teams that require row-level filtering, multiple Kafka topics, a plugin other than wal2json, or tables without a qualifying unique key. Community assistance is directed through GitHub issues.

Pros and cons

  • Pros: Initial and on-demand snapshots support both bulk loading and point-in-time copies.
  • Pros: DDL tracking alongside data replication helps downstream targets follow schema changes.
  • Pros: Multiple transformation options support masking column values in transit.
  • Pros: PostgreSQL is the only dependency, with no ZooKeeper or Kafka requirement.
  • Cons: Single-topic Kafka support constrains Kafka destination designs.
  • Cons: No row-level filtering limits control over which records are replicated.
  • Cons: wal2json-only plugin support and the unique-key requirement restrict eligible source setups.
  • Cons: Self-hosting means teams must operate the tool themselves.

Alternatives

Browse Change Data Capture Software to compare the category. Each of these alternatives is also free and open-source, but their stated platforms and plan details differ:

  • Apache Flink CDC is another free option, with released JARs and connectors under Apache License 2.0; choose it when Windows support is important.
  • Canal is a free Apache-2.0 project with API support; consider it when an API platform is part of your requirements.
  • Debezium is a free, open-source distributed CDC platform under Apache License 2.0; consider it when a distributed platform is the priority.
  • Sequin is free, self-hosted, and open source under MIT; choose it if that license or its API and web platforms better suit your deployment.
  • dbmazz offers a free self-hosted engine with a CLI, terminal dashboard, local web UI, and community support; consider it if those interfaces are a better fit.
  • Decodable has a free plan with 24 hours or 10GiB stream retention, 20 streams, four running tasks, and Small and Medium task sizes; consider it if those managed stream limits meet your needs.
  • Estuary offers a free plan and a pay-as-you-go plan at $100 a month; consider it if that pricing model is preferable.
  • LinkedIn Databus is a free Apache 2.0 open-source option; consider it as another self-hosted choice.

Verdict

Choose pgstream if you need free, self-hosted PostgreSQL replication that carries schema changes, supports snapshots, and can transform column values on the way to a target. Its narrow dependency footprint is a practical advantage, but its single-topic Kafka support, lack of row filtering, wal2json-only plugin support, and key requirement are reasons to choose another CDC tool when those constraints conflict with your pipeline.

Verdict

pgstream provides self-hosted PostgreSQL replication with snapshots, schema tracking, and value transformation options. Its initial release has stated limits around Kafka topics, plugin support, filtering, and key requirements.

Questions

Does pgstream cost anything?

The listed pgstream plan is free. It is open source under Apache License 2.0.

What can pgstream send data to?

Its built-in targets are PostgreSQL, Elasticsearch, OpenSearch, Kafka, and webhooks.

Which operating systems are listed?

The listed platforms are Linux, macOS, and self-hosted deployment. Homebrew installation is described for macOS and Linux.

Does it capture schema changes as well as data?

Yes. It tracks and replicates schema changes alongside data changes.

Does pgstream require Kafka or ZooKeeper?

No. PostgreSQL is its only stated dependency; Kafka and ZooKeeper are not required to run it.

Who makes pgstream, and how can users get help?

The project page is hosted by Xata. Its README directs questions and issues to GitHub for community assistance.

Facts from pgstream's own pages

Anonymization
Column values can be transformed during replication using greenmask, neosync, or go-masker integrations. · xata.io, 4 Oct 2026
DDL tracking
It tracks and replicates schema changes alongside data changes so downstream targets can follow table changes. · xata.io, 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, 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, 4 Oct 2026
Installation
The docs describe installing from a Go binary, building from source, or using Homebrew on macOS or Linux. · xata.io, 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, 4 Oct 2026
Interfaces
pgstream can run as a standalone CLI tool or be embedded as a Go library. · xata.io, 4 Oct 2026
Kafka support
Kafka support includes schema-based partitioning. · xata.io, 4 Oct 2026
License
The project is licensed under Apache License 2.0. · github.com, 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, 4 Oct 2026
Maker founded
Xata says it formed in 2021. · xata.io, 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, 4 Oct 2026
Purpose
pgstream is an open-source CDC tool for replicating PostgreSQL data and DDL schema changes to targets. · xata.io, 4 Oct 2026
Schema changes
It tracks and replicates schema changes alongside data changes. · xata.io, 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, 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, 4 Oct 2026
Support
The project README directs users with questions or issues to open a GitHub issue for community assistance. · github.com, 4 Oct 2026
Targets
Built-in targets include PostgreSQL, Elasticsearch/OpenSearch, Kafka, and webhooks. · xata.io, 4 Oct 2026

Where pgstream stands on Freedom251

Look at these too