Specifies how many replication origins (see replication_origins) can be tracked simultaneously, effectively limiting how many logical replication subscriptions can be created on the server.
At a glance
| Property | Value |
|---|---|
| Parameter | max_active_replication_origins |
| Category | Replication |
| Default | 10 |
| Value type | integer |
| Change scope | Server restart required (postgresql.conf) |
| Available in | PostgreSQL 18, 19 (added in 18) |
What it does
Specifies how many replication origins (see replication_origins) can be tracked simultaneously, effectively limiting how many logical replication subscriptions can be created on the server. Setting it to a lower value than the current number of tracked replication origins (reflected in pg_replication_origin_status) will prevent the server from starting. It defaults to 10. This parameter can only be set at server start. max_active_replication_origins must be set to at least the number of subscriptions that will be added to the subscriber, plus some reserve for table synchronization.
(Description quoted from the official PostgreSQL documentation.)
How to apply a change
Set it in postgresql.conf (or with ALTER SYSTEM) and restart the server — this parameter cannot change without a restart.
Inspect the current value and source with SHOW max_active_replication_origins; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'max_active_replication_origins';.
Tuning guidance
This parameter is rarely a performance lever. Leave it at the default unless you have a specific, documented reason to change it, change it on one session or one role/database first, and confirm the effect with pg_settings and your own measurements before rolling it out cluster-wide.