Logical replication requires several configuration options to be set. Most
   options are relevant only on one side of the replication. However,
   max_replication_slots is used on both the publisher and
   the subscriber, but it has a different meaning for each.
  
    wal_level must be
    set to logical.
   
    max_replication_slots
    must be set to at least the number of subscriptions expected to connect,
    plus some reserve for table synchronization.
   
    max_wal_senders
    should be set to at least the same as
    max_replication_slots, plus the number of physical
    replicas that are connected at the same time.
   
    Logical replication walsender is also affected by
    wal_sender_timeout.
   
    max_replication_slots
    must be set to at least the number of subscriptions that will be added to
    the subscriber, plus some reserve for table synchronization.
   
    max_logical_replication_workers
    must be set to at least the number of subscriptions (for leader apply
    workers), plus some reserve for the table synchronization workers and
    parallel apply workers.
   
    max_worker_processes
    may need to be adjusted to accommodate for replication workers, at least
    (max_logical_replication_workers
    + 1). Note, some extensions and parallel queries also
    take worker slots from max_worker_processes.
   
    max_sync_workers_per_subscription
     controls the amount of parallelism of the initial data copy during the
     subscription initialization or when new tables are added.
   
    max_parallel_apply_workers_per_subscription
     controls the amount of parallelism for streaming of in-progress
     transactions with subscription parameter
     streaming = parallel.
   
    Logical replication workers are also affected by
    wal_receiver_timeout,
    wal_receiver_status_interval and
    wal_retrieve_retry_interval.