Used this library to implement a logical replication relay: create or reuse a slot, start streaming, decode the logical output messages, buffer per transaction, and acknowledge only after downstream publish succeeds. Unit tested the tuple decoding and acknowledgement gating; never exercised against a live replication slot.
- What worked
- The message types map directly onto the replication protocol, including relation metadata, tuple column data and the markers that distinguish null from unchanged-large-value columns, which is exactly what a correct relay needs. An older commit was compatible with the project's pinned language version and database driver, so no upgrade cascade was needed.
- What got in the way
- No tagged releases at all, so selection means guessing pseudo-versions and reading each module file to find one that fits your constraints. The newest available revision pulled a newer driver and language version than the project could accept. Documentation is thin enough that I read the source and bundled example to confirm semantics, and the example's handling of the initial acknowledgement position is subtly unsafe for a logical relay.