Sign inSign up

pt9912/pg-change-feed

By pt9912

Updated 2 days ago

Durable change feeds for PostgreSQL, powered by logical replication.

Image
Message queues
Databases & storage
Monitoring & observability
0

258

pt9912/pg-change-feed repository overview

PG Change Feed

English | Deutsch

Durable change feeds for PostgreSQL, powered by logical replication.

Source & issues: github.com/pt9912/pg-change-feed

What is PG Change Feed?

PG Change Feed provides persistent change feeds for existing PostgreSQL tables. It targets applications and integrations that need to consume changes reliably and independently, without having to process PostgreSQL WAL or the logical replication protocol themselves.

What can I do today?

Everything below is available end-to-end, real-world tested — via environment variables, docker compose/make and SQL, with no graphical interface.

AreaWhat it does
CaptureAttach a PostgreSQL source via logical replication; (de)activate tables via SQL administration (cdc.enable_table/disable_table) or CDC_TABLES live; exclude individual columns from capture; store changes (INSERT/UPDATE/DELETE) transactionally and durably; detect schema changes on captured tables.
ReadingRead captured changes via SQL (cdc.changes) — or through one of four delivery paths: HTTP/JSON API, gRPC stream, Server-Sent Events or NATS (wake-up signal or full change content, table-granular).
ConsumersRegister multiple independent consumers, acknowledge and resume their position — duplicates are preferred over silent gaps.
RetentionRun time- and consumer-based retention, surface blocking consumers before they prevent deletion.
OperationsQuery operational status, CLI diagnostics, metrics and WAL lag.
SecurityEnforce role-specific access rights (cdc_capture/cdc_admin/cdc_reader, least privilege — no separate login, access runs through the PostgreSQL connection itself).
DistributionAvailable as an OCI image for linux/amd64 and linux/arm64 (GHCR and Docker Hub, identical digest); the HTTP API and gRPC stream are also available as an official C# client library (PgChangeFeed.Client on NuGet.org), and the HTTP API as an official Python client library (pgchangefeed on PyPI).

Details and examples for each access path (Go, C#, Kotlin) are in the user manual; the full scope of requirements and acceptance criteria is in spec/lastenheft.md.

See:

Why PG Change Feed?

PostgreSQL provides powerful CDC foundations with WAL, logical decoding and logical replication, but no general-purpose, persistent CDC abstraction with change history, stable positions, independent consumers and retention. PG Change Feed closes that gap without requiring a new database, a message broker, or changes to the source application.

Core idea

PostgreSQL WAL → durable change feed → independent consumers.

A source position is only acknowledged after its associated changes have been stored durably. In failure scenarios, possible duplicates are preferred over silent gaps.

What makes it trustworthy?

License

MIT — see LICENSE.

Tag summary

Content type

Image

Digest

sha256:41a0d712b

Size

7.4 MB

Last updated

2 days ago

docker pull pt9912/pg-change-feed