Also called: catalog xmin horizon
In plain English
catalog_xmin is the oldest transaction id whose system catalog row versions must still be retained. Logical replication slots hold it back because logical decoding needs the catalog as it looked when each change was made, to interpret the WAL correctly. You can see it on a slot in pg_replication_slots.
Why it matters
It’s the lever behind failover-safe logical slots: hot_standby_feedback propagates a standby’s catalog_xmin to the primary so vacuum doesn’t remove catalog rows the synced slot still needs. The cost is that a held-back horizon can increase catalog bloat.