Hi,

I'm working with *logical replication* in a PostgreSQL 17 setup, and I'm
exploring the new synchronized_standby_slots parameter to make replication
slots failover safe in a highly available environment using physical
standby nodes managed by Patroni.

While testing this feature, I encountered a blocking behavior, when a *standby
is listed in synchronized_standby_slots* and that standby goes
offline, *logical
replication on the primary stops progressing*. From what I understand, the
primary node waits for the standby to acknowledge received wal records,
effectively stalling WAL decoding for the logical slot. I noticed that the
failover slot on the standby continue to be synced.

This raises several questions about the *tradeoffs and implications* of
using this feature:

   - What are the *risks or limitations* if synchronized_standby_slots is *left
   empty* (the default)? Is there a risk of data loss or inconsistency for
   logical subscribers in such cases?
   - Is it expected behavior that *any failure of a standby listed in
   synchronized_standby_slots stalls logical decoding* on the primary? If
   so, are there any ways to *avoid blocking* WAL decoding while still
   having slot synchronization?
   - Patroni is managing FO slots better than native Postgres
   impletmentation?

Thanks for helping on those points

Regards,

Fabrice

Reply via email to