Skip to content

Replicant 1.4.0

Choose a tag to compare

@palermo-git palermo-git released this 01 Oct 04:05

The plugin-decoder release. Full details in the CHANGELOG and ADR-0009.

Added

  • Plugin decoders for PostgreSQL 9.6 to 14 — a new top-level decoder: option selects the logical-decoding output plugin: pglogical (the pglogical_output binary protocol) or wal2json (JSON format version 2, wal2json ≥ 2.6), beside the unchanged pgoutput default. Same Replicant.Sink contract, commit_lsn watermark, checkpoint modes and halt semantics; delivery proven byte-identical across all three decoders on live 9.6/12/15+ servers.

Fixed

  • The two documented wal2json divergences are now fail-closed, not silent. A configured keyless table (no replica-identity key, identity ≠ FULL — its updates/deletes would be dropped plugin-side with no wire signal) halts at start; allow_keyless_tables: true opts into insert-only semantics. A dropped column halts :destructive on every decoder — immediately for inserts and fixed-width columns via wire-level absence disambiguation, and within schema_check_interval (default 30s) for the TOASTable-on-update-only case via a periodic catalog guard.
  • Empty transactions from a pre-PG15 server are suppressed (never delivered to the sink; a state mirror acks the proven-empty WAL, an append log retains it at its durable frontier).