- barman-wal-archive - this can be used as PostgreSQL's archive_command instead of rsync. The main reason for doing so is that barman-wal-archive will not just copy the WAL to the Barman server but it will also ensure it is flushed to disk using fsync. If plain rsync is used then the WAL may remain in a cache on the Barman server and not be flushed to disk until after archive_command has returned successfully.
- barman-wal-restore - this can be used as PostgreSQL's restore_command and is added to the recovery options when `get-wal` is specified in recovery_options *and* a remote recovery is requested via the --remote-ssh-command option. This allows PostgreSQL to fetch the WALs required for point-in-time recovery without requiring Barman to copy the WALs to the PostgreSQL server during the recovery process.
If barman-cli isn't installed on the PostgreSQL server then backup and restore are still possible however:
- WAL archive can only be performed using rsync directly.
- WALs cannot be fetched from a remote Barman server during recovery and are instead copied to the PostgreSQL server during the `barman recover` command.
Hope this helps.