anchor.diff:  * Verify that `wal_level` parameter is set to `logical` by running the query `SHOW wal_level` as DB master user; this might not be the case in multi-zone replication setups.
   You cannot set this option manually, it's (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html[automatically changed]) when the `rds.logical_replication` is set to `1`.
   If the `wal_level` is not `logical` after the change above, it's probably because the instance has to be restarted due to the parameter group change, it'll happen accordingly to your maintenance window or can be done manually.
  -* Set `plugin.name` Debezium parameter to `wal2json`.
  +* Set `plugin.name` Debezium parameter to `wal2json`.  You can skip this on PostgreSQL 10+ if you wish to use PgOutput logical replication stream support.
   * Use database master account for replication as RDS currently does not support setting of `REPLICATION` privilege for another account.
   
   [IMPORTANT]
  
positive.code: |`false`
  |Whether or not to drop the logical replication slot when the connector finishes orderly. Should only be set to `true` in testing or development environments. Dropping the slot allows WAL segments to be discarded by the database, so it may happen that after a restart the connector cannot resume from the WAL position where it left off before.
  
  |`database.hostname`
  |
  |IP address or hostname of the PostgreSQL database server.
  
negative.code: This is because wal2json's messages won't contain a field for such column.
  The requirement for adding this is tracked under the wal2json https://github.com/eulerto/wal2json/issues/98[issue 98].
  See the documentation of `columns_diff_exclude_unchanged_toast` further below for implications of using it.
  * pgoutput plug-in does not emit events for tables without primary keys
  
  All up-to-date differences are tracked in a test suite https://github.com/debezium/debezium/blob/master/debezium-connector-postgres/src/test/java/io/debezium/connector/postgresql/DecoderDifferences.java[Java class].
  
  [[server-configuration]]
  ==== Configuring the PostgreSQL Server
  
  If you are using one of the supported external link:#output-plugin[plugin] and it has been installed, configure the server to load the plugin at startup:
  
  *postgresql.conf*
  [source]
  ----
  # MODULES
  shared_preload_libraries = 'decoderbufs,wal2json' //<1>
  ----
  <1> tells the server that it should load at startup the `decoderbufs` and `wal2json` logical decoding plugins (the names of the plugins are set in https://github.com/debezium/postgres-decoderbufs/blob/v0.3.0/Makefile[_Protobuf_] and https://github.com/eulerto/wal2json/blob/master/Makefile[_wal2json_] Makefiles)
  
  Next is to configure the replication slot regardless of the decoder being used:
  
  *postgresql.conf*
  [source]
  ----
  # REPLICATION
  wal_level = logical             //<1>
  max_wal_senders = 1             //<2>
  max_replication_slots = 1       //<3>
  ----
  <1> tells the server that it should use logical decoding with the write-ahead log
  <2> tells the server that it should use a maximum of `1` separate processes for processing WAL changes
  <3> tells the server that it should allow a maximum of `1` replication slots to be created for streaming WAL changes
  
  Debezium needs a PostgreSQL's WAL to be kept during Debezium outages.
  If your WAL retention is too small and outages too long then Debezium will not be able to recover after restart as it will miss part of the data changes.
  