catalog_xmin
Also called: catalog xmin horizon
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.
What this means
The oldest transaction whose system-catalog row versions still have to be kept around. Logical slots hold this back because decoding old WAL needs the catalog exactly as it looked when each change happened. It shows up per slot, and a stuck slot pinning it is a classic cause of catalog bloat.
Why it matters operationally
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.