Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

What pg2osync is

pg2osync keeps a search index in sync with a database, in real time, from one binary. It reads changes straight from the database's replication stream — PostgreSQL's WAL or MySQL's binlog — and writes them to OpenSearch, Elasticsearch or Meilisearch within milliseconds. No Logstash, no Kafka, no Redis, no JVM.

export PG2OSYNC_SOURCE_URL="postgres://user:pass@db-host/mydb"
pg2osync init --table users   # writes pg2osync.toml, checks the table exists
pg2osync validate             # checks both ends and the server's settings
pg2osync run                  # initial load, then streaming

Installing it, the comparison against Debezium and Logstash, and the current feature matrix are in the README. This site is the rest:

Every number in these pages was measured by a script in dev/, and the page says which one. Where a limit has not been measured, it says that instead.