I think those messages are useful when debugging logical replication problems (imagine missing transaction or inconsistent data between publisher and subscriber). I don't think pg_logical_slot_get_changes() or pg_logical_slot_peek_changes() are expected to be called frequently in a loop.
Yeah right. But can you please shed some light on when these functions
should be called, or are they used only for testing purposes?
Instead you should open a replication connection to continue to receive logical changes ... forever.
Yes, this is what I have decided to resort to now.
Why do you need to call pg_logical_slot_peek_changes() and pg_logical_slot_get_changes() frequently?
I was just playing around to do something for logical replication and thought
of doing this quick test where every time interval I read using
pg_logical_slot_peek_changes(), make sure to consume them to a consistent
state, and only then use pg_logical_slot_get_changes() to advance the slot.