just out of curiosity, what's the difference between "streaming" and "catchup" state in pg_stat_replication.
According to the documentation this field is "Current WAL sender state". But that does not tell me anything.
When a standby connects for the first time to a primary, it is not yet synchronized, this is the "catchup" phase. Once the lag between the standby and the master is reduced to zero for the first time, replication state changes to "streaming".