diff --git a/README.rst b/README.rst
index 960f3d0..d7e2dd8 100644
--- a/README.rst
+++ b/README.rst
@@ -124,11 +124,160 @@
             rights: 'all privileges'
           extension:
             postgis_topology:
+              enabled: true
             fuzzystrmatch:
+              enabled: true
             postgis_tiger_geocoder:
+              enabled: true
             postgis:
+              enabled: true
+              pkgs:
+              - postgresql-9.1-postgis-2.1
 
-## Sample usage
+Cluster
+=======
+
+Basic streaming replication.
+
+Master node
+-----------
+
+.. code-block:: yaml
+
+  postgresql:
+    server:
+      enabled: true
+      version: 9.6
+      bind:
+        address: 0.0.0.0
+      database:
+        mydb: ...
+    cluster:
+      enabled: true
+      role: master
+      mode: hot_standby
+      members:
+      - host: "172.16.10.101"
+      - host: "172.16.10.102"
+      - host: "172.16.10.103"
+      replication_user:
+        name: repuser
+        password: password
+  keepalived:
+    cluster:
+      enabled: True
+      instance:
+        VIP:
+          notify_action:
+            master:
+              - 'if [ -f /root/postgresql/flags/failover ]; then touch /var/lib/postgresql/${postgresql:server:version}/main/trigger; fi'
+            backup:
+              - 'if [ -f /root/postgresql/flags/failover ]; then service postgresql stop; fi'
+            fault:
+              - 'if [ -f /root/postgresql/flags/failover ]; then service postgresql stop; fi'
+
+Slave node
+----------
+
+.. code-block:: yaml
+
+  postgresql:
+    server:
+      enabled: true
+      version: 9.6
+      bind:
+        address: 0.0.0.0
+    cluster:
+      enabled: true
+      role: slave
+      mode: hot_standby
+      master:
+        host: "172.16.10.100"
+        port: 5432
+        user: repuser
+        password: password
+  keepalived:
+    cluster:
+      enabled: True
+      instance:
+        VIP:
+          notify_action:
+            master:
+              - 'if [ -f /root/postgresql/flags/failover ]; then touch /var/lib/postgresql/${postgresql:server:version}/main/trigger; fi'
+            backup:
+              - 'if [ -f /root/postgresql/flags/failover ]; then service postgresql stop; fi'
+            fault:
+              - 'if [ -f /root/postgresql/flags/failover ]; then service postgresql stop; fi'
+
+Multi-master cluster with 2ndQuadrant bi-directional replication plugin
+
+Master node
+-----------
+
+.. code-block:: yaml
+
+  postgresql:
+    server:
+      enabled: true
+      version: 9.4
+      bind:
+        address: 0.0.0.0
+      database:
+        mydb:
+          extension:
+            bdr:
+              enabled: true
+            btree_gist:
+              enabled: true
+        ...
+    cluster:
+      enabled: true
+      mode: bdr
+      role: master
+      members:
+      - host: "172.16.10.101"
+      - host: "172.16.10.102"
+      - host: "172.16.10.101"
+      local: "172.16.10.101"
+      replication_user:
+        name: repuser
+        password: password
+
+Slave node
+----------
+
+.. code-block:: yaml
+
+  postgresql:
+    server:
+      enabled: true
+      version: 9.4
+      bind:
+        address: 0.0.0.0
+      database:
+        mydb:
+          extension:
+            bdr:
+              enabled: true
+            btree_gist:
+              enabled: true
+        ...
+    cluster:
+      enabled: true
+      mode: bdr
+      role: master
+      members:
+      - host: "172.16.10.101"
+      - host: "172.16.10.102"
+      - host: "172.16.10.101"
+      local: "172.16.10.102"
+      master: "172.16.10.101"
+      replication_user:
+        name: repuser
+        password: password
+
+Sample usage
+============
 
 Init database cluster with given locale
 
@@ -142,7 +291,8 @@
 
     sudo pg_createcluster 9.3 main --start
 
-## Read more
+Read more
+=========
 
 * http://www.postgresql.org/
 * http://www.postgresql.org/docs/9.1/interactive/index.html
diff --git a/postgresql/cluster/bdr/init.sls b/postgresql/cluster/bdr/init.sls
new file mode 100644
index 0000000..a24351e
--- /dev/null
+++ b/postgresql/cluster/bdr/init.sls
@@ -0,0 +1,11 @@
+{%- from "postgresql/map.jinja" import cluster with context %}
+
+{%- if cluster.enabled %}
+include:
+{%- if cluster.get("role") == "master" %}
+- postgresql.cluster.bdr.master
+{% elif cluster.get("role") == "slave" %}
+- postgresql.cluster.bdr.slave
+{% endif %}
+{% endif %}
+
diff --git a/postgresql/cluster/bdr/master.sls b/postgresql/cluster/bdr/master.sls
new file mode 100644
index 0000000..cdd0a8f
--- /dev/null
+++ b/postgresql/cluster/bdr/master.sls
@@ -0,0 +1,33 @@
+{%- from "postgresql/map.jinja" import server, cluster with context %}
+{%- if cluster.enabled %}
+
+{%- set repuser_name = cluster.get("replication_user", {}).get("name", "repuser") %}
+{%- set repuser_password = cluster.get("replication_user", {}).get("password") %}
+
+postgresql_user_cluster_repuser:
+  postgres_user.present:
+  - name: {{ repuser_name }}
+  - user: postgres
+  - replication: True
+  - superuser: True
+  - password: {{ repuser_password }}
+  - require:
+    - service: postgresql_service
+    - pkg: postgresql_packages
+
+{%- set nodename = salt.grains.get('nodename') %}
+
+{%- for database_name, database in server.get('database', {}).iteritems() %}
+bdr_group_create_{{ database_name }}:
+  module.run:
+    - name: postgres.psql_query
+    - query: SELECT bdr.bdr_group_create(local_node_name := '{{ nodename }}', node_external_dsn := 'host={{ cluster.get("local") }} user={{ repuser_name }} password={{ repuser_password }} dbname={{ database_name }}');
+    - user: postgres
+    - maintenance_db: {{ database_name }}
+    - unless: sudo -H -u postgres bash -c 'timeout 10s psql {{ database_name }} -c "SELECT bdr.bdr_node_join_wait_for_ready();"'
+    - require:
+      - postgres_user: postgresql_user_cluster_repuser
+{%- endfor %}
+
+{%- endif %}
+
diff --git a/postgresql/cluster/bdr/slave.sls b/postgresql/cluster/bdr/slave.sls
new file mode 100644
index 0000000..3bc7818
--- /dev/null
+++ b/postgresql/cluster/bdr/slave.sls
@@ -0,0 +1,33 @@
+{%- from "postgresql/map.jinja" import server, cluster with context %}
+{%- if cluster.enabled %}
+
+{%- set repuser_name = cluster.get("replication_user", {}).get("name", "repuser") %}
+{%- set repuser_password = cluster.get("replication_user", {}).get("password") %}
+
+postgresql_user_cluster_repuser:
+  postgres_user.present:
+  - name: {{ repuser_name }}
+  - user: postgres
+  - replication: True
+  - superuser: True
+  - password: {{ repuser_password }}
+  - require:
+    - service: postgresql_service
+    - pkg: postgresql_packages
+
+{%- set nodename = salt.grains.get('nodename') %}
+
+{%- for database_name, database in server.get('database', {}).iteritems() %}
+bdr_group_join_{{ database_name }}:
+  module.run:
+    - name: postgres.psql_query
+    - query: SELECT bdr.bdr_group_join(local_node_name := '{{ nodename }}', node_external_dsn := 'host={{ cluster.get("local") }} user={{ repuser_name }} password={{ repuser_password }} dbname={{ database_name }}', join_using_dsn := 'host={{ cluster.get("master") }} user={{ repuser_name }} password={{ repuser_password }} dbname={{ database_name }}');
+    - user: postgres
+    - maintenance_db: {{ database_name }}
+    - unless: sudo -H -u postgres bash -c 'timeout 10s psql {{ database_name }} -c "SELECT bdr.bdr_node_join_wait_for_ready();"'
+    - require:
+      - postgres_user: postgresql_user_cluster_repuser
+{%- endfor %}
+
+{%- endif %}
+
diff --git a/postgresql/cluster/hot-standby/init.sls b/postgresql/cluster/hot-standby/init.sls
new file mode 100644
index 0000000..2f78f3f
--- /dev/null
+++ b/postgresql/cluster/hot-standby/init.sls
@@ -0,0 +1,11 @@
+{%- from "postgresql/map.jinja" import cluster with context %}
+
+{%- if cluster.enabled %}
+include:
+{%- if cluster.get("role") == "master" %}
+- postgresql.cluster.hot-standby.master
+{% elif cluster.get("role") == "slave" %}
+- postgresql.cluster.hot-standby.slave
+{% endif %}
+{% endif %}
+
diff --git a/postgresql/cluster/hot-standby/master.sls b/postgresql/cluster/hot-standby/master.sls
new file mode 100644
index 0000000..df96d3f
--- /dev/null
+++ b/postgresql/cluster/hot-standby/master.sls
@@ -0,0 +1,32 @@
+{%- from "postgresql/map.jinja" import cluster with context %}
+{%- if cluster.enabled %}
+
+postgresql_user_cluster_repuser:
+  postgres_user.present:
+  - name: {{ cluster.get("replication_user", {}).get("name", "repuser") }}
+  - user: postgres
+  - replication: True
+  - password: {{ cluster.get("replication_user", {}).get("password") }}
+  - require:
+    - service: postgresql_service
+    - pkg: postgresql_packages
+
+postgresql_recovery_conf:
+  file.absent:
+  - name: {{ cluster.dir.data }}/recovery.conf
+  - require:
+    - service: postgresql_service
+    - pkg: postgresql_packages
+
+postgresql_master_service:
+  service.running:
+  - name: {{ cluster.service }}
+  - enable: true
+  - watch:
+    - file: {{ cluster.dir.config }}/pg_hba.conf
+    - file: {{ cluster.dir.config }}/postgresql.conf
+  - require:
+    - file: /root/.pgpass
+
+{%- endif %}
+
diff --git a/postgresql/cluster/hot-standby/slave.sls b/postgresql/cluster/hot-standby/slave.sls
new file mode 100644
index 0000000..cee0857
--- /dev/null
+++ b/postgresql/cluster/hot-standby/slave.sls
@@ -0,0 +1,75 @@
+{%- from "postgresql/map.jinja" import cluster with context %}
+
+{%- if cluster.enabled %}
+
+postgresql_slave_service_stop:
+  service.dead:
+  - name: {{ cluster.service }}
+  - enable: true
+  - unless: "[ -f {{ cluster.dir.data }}/cluster-created ]"
+  - require:
+    - pkg: postgresql_packages
+
+clean_postgresql_data_dir:
+  file.absent:
+  - name: {{ cluster.dir.data }}
+  - unless: "[ -f {{ cluster.dir.data }}/cluster-created ]"
+  - require:
+    - service: postgresql_slave_service_stop
+
+postgresql_slave_dirs:
+  file.directory:
+  - names:
+    - {{ cluster.dir.data }}
+  - mode: 700
+  - user: postgres
+  - group: postgres
+  - makedirs: true
+  - require:
+    - file: clean_postgresql_data_dir
+
+restore_postgresql_cluster:
+  cmd.run:
+  - names:
+    - pg_basebackup --host {{ cluster.master.host }} -U {{ cluster.master.user }} --xlog-method=stream -D {{ cluster.dir.data }} -w -d "password={{ cluster.master.password }}" -v && touch {{ cluster.dir.data }}/cluster-created
+  - unless: "[ -f {{ cluster.dir.data }}/cluster-created ]"
+  - user: postgres
+  - cwd: /var/lib/postgresql
+  - require:
+    - file: postgresql_slave_dirs
+
+{{ cluster.dir.data }}/postgresql.conf:
+  file.managed:
+  - source: salt://postgresql/files/{{ cluster.version }}/postgresql.conf.{{ grains.os_family }}
+  - template: jinja
+  - user: postgres
+  - group: postgres
+  - defaults:
+      postgresql_version: {{ cluster.version }}
+  - mode: 600
+  - require:
+    - cmd: restore_postgresql_cluster
+
+{{ cluster.dir.data }}/recovery.conf:
+  file.managed:
+  - source: salt://postgresql/files/recovery.conf
+  - template: jinja
+  - user: postgres
+  - group: postgres
+  - mode: 600
+  - require:
+    - cmd: restore_postgresql_cluster
+
+postgresql_slave_service:
+  service.running:
+  - name: {{ cluster.service }}
+  - enable: true
+  - watch:
+    - file: {{ cluster.dir.data }}/postgresql.conf
+    - file: {{ cluster.dir.data }}/recovery.conf
+  - require:
+    - cmd: restore_postgresql_cluster
+    - file: {{ cluster.dir.data }}/recovery.conf
+
+{%- endif %}
+
diff --git a/postgresql/cluster/init.sls b/postgresql/cluster/init.sls
new file mode 100644
index 0000000..8f523f5
--- /dev/null
+++ b/postgresql/cluster/init.sls
@@ -0,0 +1,10 @@
+{%- from "postgresql/map.jinja" import cluster with context %}
+
+{%- if cluster.enabled %}
+include:
+{%- if cluster.get("mode") == "hot_standby" %}
+- postgresql.cluster.hot-standby
+{% elif cluster.get("mode") == "bdr" %}
+- postgresql.cluster.bdr
+{% endif %}
+{% endif %}
diff --git a/postgresql/files/8.4/postgresql.conf.Debian b/postgresql/files/8.4/postgresql.conf.Debian
index a8b92f7..baef22a 100644
--- a/postgresql/files/8.4/postgresql.conf.Debian
+++ b/postgresql/files/8.4/postgresql.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import server with context -%}
 # -----------------------------
 # PostgreSQL configuration file
 # -----------------------------
diff --git a/postgresql/files/8.4/postgresql.conf.RedHat b/postgresql/files/8.4/postgresql.conf.RedHat
index e2ea1bd..f3b3ef2 100644
--- a/postgresql/files/8.4/postgresql.conf.RedHat
+++ b/postgresql/files/8.4/postgresql.conf.RedHat
@@ -1,4 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import server with context -%}
 # -----------------------------
 # PostgreSQL configuration file
 # -----------------------------
@@ -506,4 +506,4 @@
 # CUSTOMIZED OPTIONS
 #------------------------------------------------------------------------------
 
-#custom_variable_classes = ''		# list of custom variable class names
\ No newline at end of file
+#custom_variable_classes = ''		# list of custom variable class names
diff --git a/postgresql/files/9.1/postgresql.conf.Debian b/postgresql/files/9.1/postgresql.conf.Debian
index 5233e59..02f65c9 100644
--- a/postgresql/files/9.1/postgresql.conf.Debian
+++ b/postgresql/files/9.1/postgresql.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import server with context -%}
 # -----------------------------
 # PostgreSQL configuration file
 # -----------------------------
diff --git a/postgresql/files/9.3/postgresql.conf.Debian b/postgresql/files/9.3/postgresql.conf.Debian
index 4714654..45eb96c 100644
--- a/postgresql/files/9.3/postgresql.conf.Debian
+++ b/postgresql/files/9.3/postgresql.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import server with context -%}
 # -----------------------------
 # PostgreSQL configuration file
 # -----------------------------
diff --git a/postgresql/files/9.4/postgresql.conf.Debian b/postgresql/files/9.4/postgresql.conf.Debian
new file mode 100644
index 0000000..e43fc6f
--- /dev/null
+++ b/postgresql/files/9.4/postgresql.conf.Debian
@@ -0,0 +1,626 @@
+{%- from "postgresql/map.jinja" import server, cluster with context -%}
+# -----------------------------
+# PostgreSQL configuration file
+# -----------------------------
+#
+# This file consists of lines of the form:
+#
+#   name = value
+#
+# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
+# "#" anywhere on a line.  The complete list of parameter names and allowed
+# values can be found in the PostgreSQL documentation.
+#
+# The commented-out settings shown in this file represent the default values.
+# Re-commenting a setting is NOT sufficient to revert it to the default value;
+# you need to reload the server.
+#
+# This file is read on server startup and when the server receives a SIGHUP
+# signal.  If you edit the file on a running system, you have to SIGHUP the
+# server for the changes to take effect, or use "pg_ctl reload".  Some
+# parameters, which are marked below, require a server shutdown and restart to
+# take effect.
+#
+# Any parameter can also be given as a command-line option to the server, e.g.,
+# "postgres -c log_connections=on".  Some parameters can be changed at run time
+# with the "SET" SQL command.
+#
+# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds
+#                MB = megabytes                     s   = seconds
+#                GB = gigabytes                     min = minutes
+#                TB = terabytes                     h   = hours
+#                                                   d   = days
+
+
+#------------------------------------------------------------------------------
+# FILE LOCATIONS
+#------------------------------------------------------------------------------
+
+# The default values of these variables are driven from the -D command-line
+# option or PGDATA environment variable, represented here as ConfigDir.
+
+data_directory = '/var/lib/postgresql/9.4/main'         # use data in another directory
+                                        # (change requires restart)
+hba_file = '/etc/postgresql/9.4/main/pg_hba.conf'       # host-based authentication file
+                                        # (change requires restart)
+ident_file = '/etc/postgresql/9.4/main/pg_ident.conf'   # ident configuration file
+                                        # (change requires restart)
+
+# If external_pid_file is not explicitly set, no extra PID file is written.
+external_pid_file = '/var/run/postgresql/9.4-main.pid'                  # write an extra PID file
+                                        # (change requires restart)
+
+
+#------------------------------------------------------------------------------
+# CONNECTIONS AND AUTHENTICATION
+#------------------------------------------------------------------------------
+
+# - Connection Settings -
+
+{%- if server.bind.address == '0.0.0.0' %}
+listen_addresses = '*'
+{%- else %}
+listen_addresses = 'localhost{% if server.bind.address != "127.0.0.1" %}, {{ server.bind.address }}'{% endif %}
+{%- endif %}
+port = {{ server.bind.get('port', '5432') }}
+max_connections = 100                   # (change requires restart)
+#superuser_reserved_connections = 3     # (change requires restart)
+unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
+                                        # (change requires restart)
+#unix_socket_group = ''                 # (change requires restart)
+#unix_socket_permissions = 0777         # begin with 0 to use octal notation
+                                        # (change requires restart)
+#bonjour = off                          # advertise server via Bonjour
+                                        # (change requires restart)
+#bonjour_name = ''                      # defaults to the computer name
+                                        # (change requires restart)
+
+# - Security and Authentication -
+
+#authentication_timeout = 1min          # 1s-600s
+ssl = true                              # (change requires restart)
+#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
+                                        # (change requires restart)
+#ssl_prefer_server_ciphers = on         # (change requires restart)
+#ssl_ecdh_curve = 'prime256v1'          # (change requires restart)
+#ssl_renegotiation_limit = 0            # amount of data between renegotiations
+ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'          # (change requires restart)
+ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'         # (change requires restart)
+#ssl_ca_file = ''                       # (change requires restart)
+#ssl_crl_file = ''                      # (change requires restart)
+#password_encryption = on
+#db_user_namespace = off
+
+# GSSAPI using Kerberos
+#krb_server_keyfile = ''
+#krb_caseins_users = off
+
+# - TCP Keepalives -
+# see "man 7 tcp" for details
+
+#tcp_keepalives_idle = 0                # TCP_KEEPIDLE, in seconds;
+                                        # 0 selects the system default
+#tcp_keepalives_interval = 0            # TCP_KEEPINTVL, in seconds;
+                                        # 0 selects the system default
+#tcp_keepalives_count = 0               # TCP_KEEPCNT;
+                                        # 0 selects the system default
+
+
+#------------------------------------------------------------------------------
+# RESOURCE USAGE (except WAL)
+#------------------------------------------------------------------------------
+
+# - Memory -
+
+shared_buffers = 128MB                  # min 128kB
+                                        # (change requires restart)
+#huge_pages = try                       # on, off, or try
+                                        # (change requires restart)
+#temp_buffers = 8MB                     # min 800kB
+#max_prepared_transactions = 0          # zero disables the feature
+                                        # (change requires restart)
+# Caution: it is not advisable to set max_prepared_transactions nonzero unless
+# you actively intend to use prepared transactions.
+#work_mem = 4MB                         # min 64kB
+#maintenance_work_mem = 64MB            # min 1MB
+#autovacuum_work_mem = -1               # min 1MB, or -1 to use maintenance_work_mem
+#max_stack_depth = 2MB                  # min 100kB
+dynamic_shared_memory_type = posix      # the default is the first option
+                                        # supported by the operating system:
+                                        #   posix
+                                        #   sysv
+                                        #   windows
+                                        #   mmap
+                                        # use none to disable dynamic shared memory
+
+# - Disk -
+
+#temp_file_limit = -1                   # limits per-session temp file space
+                                        # in kB, or -1 for no limit
+
+# - Kernel Resource Usage -
+
+#max_files_per_process = 1000           # min 25
+                                        # (change requires restart)
+#shared_preload_libraries = ''          # (change requires restart)
+{%- if cluster.enabled and cluster.get("mode") == "bdr" %}
+shared_preload_libraries = 'bdr'
+{% endif %}
+
+# - Cost-Based Vacuum Delay -
+
+#vacuum_cost_delay = 0                  # 0-100 milliseconds
+#vacuum_cost_page_hit = 1               # 0-10000 credits
+#vacuum_cost_page_miss = 10             # 0-10000 credits
+#vacuum_cost_page_dirty = 20            # 0-10000 credits
+#vacuum_cost_limit = 200                # 1-10000 credits
+
+# - Background Writer -
+
+#bgwriter_delay = 200ms                 # 10-10000ms between rounds
+#bgwriter_lru_maxpages = 100            # 0-1000 max buffers written/round
+#bgwriter_lru_multiplier = 2.0          # 0-10.0 multipler on buffers scanned/round
+
+# - Asynchronous Behavior -
+
+#effective_io_concurrency = 1           # 1-1000; 0 disables prefetching
+#max_worker_processes = 8
+{%- if cluster.enabled and cluster.get("mode") == "bdr" %}
+max_worker_processes = 10
+{% endif %}
+
+
+#------------------------------------------------------------------------------
+# WRITE AHEAD LOG
+#------------------------------------------------------------------------------
+
+# - Settings -
+
+#wal_level = minimal                    # minimal, archive, hot_standby, or logical
+{%- if cluster.enabled and cluster.get("mode") == "bdr" %}
+wal_level = logical
+{% endif %}
+                                        # (change requires restart)
+#fsync = on                             # turns forced synchronization on or off
+#synchronous_commit = on                # synchronization level;
+                                        # off, local, remote_write, or on
+#wal_sync_method = fsync                # the default is the first option
+                                        # supported by the operating system:
+                                        #   open_datasync
+                                        #   fdatasync (default on Linux)
+                                        #   fsync
+                                        #   fsync_writethrough
+                                        #   open_sync
+#full_page_writes = on                  # recover from partial page writes
+#wal_log_hints = off                    # also do full page writes of non-critical updates
+                                        # (change requires restart)
+#wal_buffers = -1                       # min 32kB, -1 sets based on shared_buffers
+                                        # (change requires restart)
+#wal_writer_delay = 200ms               # 1-10000 milliseconds
+
+#commit_delay = 0                       # range 0-100000, in microseconds
+#commit_siblings = 5                    # range 1-1000
+
+# - Checkpoints -
+
+#checkpoint_segments = 3                # in logfile segments, min 1, 16MB each
+#checkpoint_timeout = 5min              # range 30s-1h
+#checkpoint_completion_target = 0.5     # checkpoint target duration, 0.0 - 1.0
+#checkpoint_warning = 30s               # 0 disables
+
+# - Archiving -
+
+#archive_mode = off             # allows archiving to be done
+                                # (change requires restart)
+#archive_command = ''           # command to use to archive a logfile segment
+                                # placeholders: %p = path of file to archive
+                                #               %f = file name only
+                                # e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
+#archive_timeout = 0            # force a logfile segment switch after this
+                                # number of seconds; 0 disables
+
+
+#------------------------------------------------------------------------------
+# REPLICATION
+#------------------------------------------------------------------------------
+
+# - Sending Server(s) -
+
+# Set these on the master and on any standby that will send replication data.
+
+#max_wal_senders = 0            # max number of walsender processes
+                                # (change requires restart)
+#wal_keep_segments = 0          # in logfile segments, 16MB each; 0 disables
+#wal_sender_timeout = 60s       # in milliseconds; 0 disables
+
+#max_replication_slots = 0      # max number of replication slots
+#track_commit_timestamp = off   # collect timestamp of transaction commit
+                                # (change requires restart)
+{%- if cluster.enabled and cluster.get("mode") == "bdr" %}
+max_wal_senders = 10
+max_replication_slots = 10
+track_commit_timestamp = on
+{% endif %}
+
+
+# - Master Server -
+
+# These settings are ignored on a standby server.
+
+#synchronous_standby_names = '' # standby servers that provide sync rep
+                                # comma-separated list of application_name
+                                # from standby(s); '*' = all
+#vacuum_defer_cleanup_age = 0   # number of xacts by which cleanup is delayed
+
+# - Standby Servers -
+
+# These settings are ignored on a master server.
+
+#hot_standby = off                      # "on" allows queries during recovery
+                                        # (change requires restart)
+#max_standby_archive_delay = 30s        # max delay before canceling queries
+                                        # when reading WAL from archive;
+                                        # -1 allows indefinite delay
+#max_standby_streaming_delay = 30s      # max delay before canceling queries
+                                        # when reading streaming WAL;
+                                        # -1 allows indefinite delay
+#wal_receiver_status_interval = 10s     # send replies at least this often
+                                        # 0 disables
+#hot_standby_feedback = off             # send info from standby to prevent
+                                        # query conflicts
+#wal_receiver_timeout = 60s             # time that receiver waits for
+                                        # communication from master
+                                        # in milliseconds; 0 disables
+
+
+#------------------------------------------------------------------------------
+# QUERY TUNING
+#------------------------------------------------------------------------------
+
+# - Planner Method Configuration -
+
+#enable_bitmapscan = on
+#enable_hashagg = on
+#enable_hashjoin = on
+#enable_indexscan = on
+#enable_indexonlyscan = on
+#enable_material = on
+#enable_mergejoin = on
+#enable_nestloop = on
+#enable_seqscan = on
+#enable_sort = on
+#enable_tidscan = on
+
+# - Planner Cost Constants -
+
+#seq_page_cost = 1.0                    # measured on an arbitrary scale
+#random_page_cost = 4.0                 # same scale as above
+#cpu_tuple_cost = 0.01                  # same scale as above
+#cpu_index_tuple_cost = 0.005           # same scale as above
+#cpu_operator_cost = 0.0025             # same scale as above
+#effective_cache_size = 4GB
+
+# - Genetic Query Optimizer -
+
+#geqo = on
+#geqo_threshold = 12
+#geqo_effort = 5                        # range 1-10
+#geqo_pool_size = 0                     # selects default based on effort
+#geqo_generations = 0                   # selects default based on effort
+#geqo_selection_bias = 2.0              # range 1.5-2.0
+#geqo_seed = 0.0                        # range 0.0-1.0
+
+# - Other Planner Options -
+
+#default_statistics_target = 100        # range 1-10000
+#constraint_exclusion = partition       # on, off, or partition
+#cursor_tuple_fraction = 0.1            # range 0.0-1.0
+#from_collapse_limit = 8
+#join_collapse_limit = 8                # 1 disables collapsing of explicit
+                                        # JOIN clauses
+
+
+#------------------------------------------------------------------------------
+# ERROR REPORTING AND LOGGING
+#------------------------------------------------------------------------------
+
+# - Where to Log -
+
+#log_destination = 'stderr'             # Valid values are combinations of
+                                        # stderr, csvlog, syslog, and eventlog,
+                                        # depending on platform.  csvlog
+                                        # requires logging_collector to be on.
+
+# This is used when logging to stderr:
+#logging_collector = off                # Enable capturing of stderr and csvlog
+                                        # into log files. Required to be on for
+                                        # csvlogs.
+                                        # (change requires restart)
+
+# These are only used if logging_collector is on:
+#log_directory = 'pg_log'               # directory where log files are written,
+                                        # can be absolute or relative to PGDATA
+#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'        # log file name pattern,
+                                        # can include strftime() escapes
+#log_file_mode = 0600                   # creation mode for log files,
+                                        # begin with 0 to use octal notation
+#log_truncate_on_rotation = off         # If on, an existing log file with the
+                                        # same name as the new log file will be
+                                        # truncated rather than appended to.
+                                        # But such truncation only occurs on
+                                        # time-driven rotation, not on restarts
+                                        # or size-driven rotation.  Default is
+                                        # off, meaning append to existing files
+                                        # in all cases.
+#log_rotation_age = 1d                  # Automatic rotation of logfiles will
+                                        # happen after that time.  0 disables.
+#log_rotation_size = 10MB               # Automatic rotation of logfiles will
+                                        # happen after that much log output.
+                                        # 0 disables.
+
+# These are relevant when logging to syslog:
+#syslog_facility = 'LOCAL0'
+#syslog_ident = 'postgres'
+
+# This is only relevant when logging to eventlog (win32):
+#event_source = 'PostgreSQL'
+
+# - When to Log -
+
+#client_min_messages = notice           # values in order of decreasing detail:
+                                        #   debug5
+                                        #   debug4
+                                        #   debug3
+                                        #   debug2
+                                        #   debug1
+                                        #   log
+                                        #   notice
+                                        #   warning
+                                        #   error
+
+#log_min_messages = warning             # values in order of decreasing detail:
+                                        #   debug5
+                                        #   debug4
+                                        #   debug3
+                                        #   debug2
+                                        #   debug1
+                                        #   info
+                                        #   notice
+                                        #   warning
+                                        #   error
+                                        #   log
+                                        #   fatal
+                                        #   panic
+
+#log_min_error_statement = error        # values in order of decreasing detail:
+                                        #   debug5
+                                        #   debug4
+                                        #   debug3
+                                        #   debug2
+                                        #   debug1
+                                        #   info
+                                        #   notice
+                                        #   warning
+                                        #   error
+                                        #   log
+                                        #   fatal
+                                        #   panic (effectively off)
+
+#log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements
+                                        # and their durations, > 0 logs only
+                                        # statements running at least this number
+                                        # of milliseconds
+
+
+# - What to Log -
+
+#debug_print_parse = off
+#debug_print_rewritten = off
+#debug_print_plan = off
+#debug_pretty_print = on
+#log_checkpoints = off
+#log_connections = off
+#log_disconnections = off
+#log_duration = off
+#log_error_verbosity = default          # terse, default, or verbose messages
+#log_hostname = off
+log_line_prefix = '%t '                 # special values:
+                                        #   %a = application name
+                                        #   %u = user name
+                                        #   %d = database name
+                                        #   %r = remote host and port
+                                        #   %h = remote host
+                                        #   %p = process ID
+                                        #   %t = timestamp without milliseconds
+                                        #   %m = timestamp with milliseconds
+                                        #   %i = command tag
+                                        #   %e = SQL state
+                                        #   %c = session ID
+                                        #   %l = session line number
+                                        #   %s = session start timestamp
+                                        #   %v = virtual transaction ID
+                                        #   %x = transaction ID (0 if none)
+                                        #   %q = stop here in non-session
+                                        #        processes
+                                        #   %% = '%'
+                                        # e.g. '<%u%%%d> '
+#log_lock_waits = off                   # log lock waits >= deadlock_timeout
+#log_statement = 'none'                 # none, ddl, mod, all
+#log_temp_files = -1                    # log temporary files equal or larger
+                                        # than the specified size in kilobytes;
+                                        # -1 disables, 0 logs all temp files
+log_timezone = 'localtime'
+
+
+#------------------------------------------------------------------------------
+# RUNTIME STATISTICS
+#------------------------------------------------------------------------------
+
+# - Query/Index Statistics Collector -
+
+#track_activities = on
+#track_counts = on
+#track_io_timing = off
+#track_functions = none                 # none, pl, all
+#track_activity_query_size = 1024       # (change requires restart)
+#update_process_title = on
+stats_temp_directory = '/var/run/postgresql/9.4-main.pg_stat_tmp'
+
+
+# - Statistics Monitoring -
+
+#log_parser_stats = off
+#log_planner_stats = off
+#log_executor_stats = off
+#log_statement_stats = off
+
+
+#------------------------------------------------------------------------------
+# AUTOVACUUM PARAMETERS
+#------------------------------------------------------------------------------
+
+#autovacuum = on                        # Enable autovacuum subprocess?  'on'
+                                        # requires track_counts to also be on.
+#log_autovacuum_min_duration = -1       # -1 disables, 0 logs all actions and
+                                        # their durations, > 0 logs only
+                                        # actions running at least this number
+                                        # of milliseconds.
+#autovacuum_max_workers = 3             # max number of autovacuum subprocesses
+                                        # (change requires restart)
+#autovacuum_naptime = 1min              # time between autovacuum runs
+#autovacuum_vacuum_threshold = 50       # min number of row updates before
+                                        # vacuum
+#autovacuum_analyze_threshold = 50      # min number of row updates before
+                                        # analyze
+#autovacuum_vacuum_scale_factor = 0.2   # fraction of table size before vacuum
+#autovacuum_analyze_scale_factor = 0.1  # fraction of table size before analyze
+#autovacuum_freeze_max_age = 200000000  # maximum XID age before forced vacuum
+                                        # (change requires restart)
+#autovacuum_multixact_freeze_max_age = 400000000        # maximum multixact age
+                                        # before forced vacuum
+                                        # (change requires restart)
+#autovacuum_vacuum_cost_delay = 20ms    # default vacuum cost delay for
+                                        # autovacuum, in milliseconds;
+                                        # -1 means use vacuum_cost_delay
+#autovacuum_vacuum_cost_limit = -1      # default vacuum cost limit for
+                                        # autovacuum, -1 means use
+                                        # vacuum_cost_limit
+
+
+#------------------------------------------------------------------------------
+# CLIENT CONNECTION DEFAULTS
+#------------------------------------------------------------------------------
+
+# - Statement Behavior -
+
+#search_path = '"$user",public'         # schema names
+#default_tablespace = ''                # a tablespace name, '' uses the default
+#temp_tablespaces = ''                  # a list of tablespace names, '' uses
+                                        # only default tablespace
+#check_function_bodies = on
+#default_transaction_isolation = 'read committed'
+#default_transaction_read_only = off
+#default_transaction_deferrable = off
+#session_replication_role = 'origin'
+#statement_timeout = 0                  # in milliseconds, 0 is disabled
+#lock_timeout = 0                       # in milliseconds, 0 is disabled
+#vacuum_freeze_min_age = 50000000
+#vacuum_freeze_table_age = 150000000
+#vacuum_multixact_freeze_min_age = 5000000
+#vacuum_multixact_freeze_table_age = 150000000
+#bytea_output = 'hex'                   # hex, escape
+#xmlbinary = 'base64'
+#xmloption = 'content'
+#gin_fuzzy_search_limit = 0
+
+# - Locale and Formatting -
+
+datestyle = 'iso, mdy'
+#intervalstyle = 'postgres'
+timezone = 'localtime'
+#timezone_abbreviations = 'Default'     # Select the set of available time zone
+                                        # abbreviations.  Currently, there are
+                                        #   Default
+                                        #   Australia (historical usage)
+                                        #   India
+                                        # You can create your own file in
+                                        # share/timezonesets/.
+#extra_float_digits = 0                 # min -15, max 3
+#client_encoding = sql_ascii            # actually, defaults to database
+                                        # encoding
+
+# These settings are initialized by initdb, but they can be changed.
+lc_messages = 'en_US.UTF-8'                     # locale for system error message
+                                        # strings
+lc_monetary = 'en_US.UTF-8'                     # locale for monetary formatting
+lc_numeric = 'en_US.UTF-8'                      # locale for number formatting
+lc_time = 'en_US.UTF-8'                         # locale for time formatting
+
+# default configuration for text search
+default_text_search_config = 'pg_catalog.english'
+
+# - Other Defaults -
+
+#dynamic_library_path = '$libdir'
+#local_preload_libraries = ''
+#session_preload_libraries = ''
+
+
+#------------------------------------------------------------------------------
+# LOCK MANAGEMENT
+#------------------------------------------------------------------------------
+
+#deadlock_timeout = 1s
+#max_locks_per_transaction = 64         # min 10
+                                        # (change requires restart)
+#max_pred_locks_per_transaction = 64    # min 10
+                                        # (change requires restart)
+
+
+#------------------------------------------------------------------------------
+# VERSION/PLATFORM COMPATIBILITY
+#------------------------------------------------------------------------------
+
+# - Previous PostgreSQL Versions -
+
+#array_nulls = on
+#backslash_quote = safe_encoding        # on, off, or safe_encoding
+#default_with_oids = off
+#escape_string_warning = on
+#lo_compat_privileges = off
+#quote_all_identifiers = off
+#sql_inheritance = on
+#standard_conforming_strings = on
+#synchronize_seqscans = on
+
+# - Other Platforms and Clients -
+
+#transform_null_equals = off
+
+
+#------------------------------------------------------------------------------
+# ERROR HANDLING
+#------------------------------------------------------------------------------
+
+#exit_on_error = off                    # terminate session on any error?
+#restart_after_crash = on               # reinitialize after backend crash?
+
+
+#------------------------------------------------------------------------------
+# CONFIG FILE INCLUDES
+#------------------------------------------------------------------------------
+
+# These options allow settings to be loaded from files other than the
+# default postgresql.conf.
+
+#include_dir = 'conf.d'                 # include files ending in '.conf' from
+                                        # directory 'conf.d'
+#include_if_exists = 'exists.conf'      # include file only if it exists
+#include = 'special.conf'               # include file
+
+
+#------------------------------------------------------------------------------
+# CUSTOMIZED OPTIONS
+#------------------------------------------------------------------------------
+
+# Add settings for extensions here
diff --git a/postgresql/files/9.5/postgresql.conf.Debian b/postgresql/files/9.5/postgresql.conf.Debian
index 0643362..d0f9482 100644
--- a/postgresql/files/9.5/postgresql.conf.Debian
+++ b/postgresql/files/9.5/postgresql.conf.Debian
@@ -1,4 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import server, cluster with context -%}
 # -----------------------------
 # PostgreSQL configuration file
 # -----------------------------
@@ -225,6 +225,23 @@
 
 # Set these on the master and on any standby that will send replication data.
 
+{%- if cluster.enabled and cluster.role != "master" %}
+hot_standby = on
+{%- endif %}
+
+{%- if cluster.enabled and cluster.role == "master" %}
+
+wal_level = hot_standby
+archive_mode = {{ cluster.archive }}
+
+max_wal_senders = {{ cluster.members|length + 1 }}
+max_replication_slots = {{ cluster.members|length + 1 }}
+
+{%- if cluster.synchronous %}
+synchronous_standby_names = '*'
+{%- endif %}
+{%- endif %}
+
 #max_wal_senders = 0		# max number of walsender processes
 				# (change requires restart)
 #wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
@@ -239,7 +256,7 @@
 
 # These settings are ignored on a standby server.
 
-#synchronous_standby_names = ''	# standby servers that provide sync rep
+#synchronous_standby_names = '*'	# standby servers that provide sync rep
 				# comma-separated list of application_name
 				# from standby(s); '*' = all
 #vacuum_defer_cleanup_age = 0	# number of xacts by which cleanup is delayed
diff --git a/postgresql/files/9.6/postgresql.conf.Debian b/postgresql/files/9.6/postgresql.conf.Debian
index 11ff7d1..e0fce11 100644
--- a/postgresql/files/9.6/postgresql.conf.Debian
+++ b/postgresql/files/9.6/postgresql.conf.Debian
@@ -1,5 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
-
+{%- from "postgresql/map.jinja" import server, cluster with context -%}
 # -----------------------------
 # PostgreSQL configuration file
 # -----------------------------
@@ -40,7 +39,7 @@
 # The default values of these variables are driven from the -D command-line
 # option or PGDATA environment variable, represented here as ConfigDir.
 
-data_directory = '/var/lib/postgresql/9.6/main'        # use data in another directory
+data_directory = '{{ server.dir.data }}'        # use data in another directory
                          # (change requires restart)
 hba_file = '/etc/postgresql/9.6/main/pg_hba.conf' # host-based authentication file
                          # (change requires restart)
@@ -60,7 +59,7 @@
 {%- if server.bind.address == '0.0.0.0' %}
 listen_addresses = '*'
 {%- else %}
-listen_addresses = 'localhost'{% if server.bind.address != '127.0.0.1' %}, '{{ bind.address }}'{% endif %}
+listen_addresses = 'localhost{% if server.bind.address != "127.0.0.1" %}, {{ server.bind.address }}'{% endif %}
 {%- endif %}
 port = {{ server.bind.get('port', '5432') }}
 
@@ -237,6 +236,23 @@
 
 # - Sending Server(s) -
 
+{%- if cluster.enabled and cluster.get("mode") == "hot_standby" and cluster.role != "master" %}
+hot_standby = on
+{%- endif %}
+
+{%- if cluster.enabled and cluster.get("mode") == "hot_standby" and cluster.role == "master" %}
+
+wal_level = hot_standby
+archive_mode = {{ cluster.archive }}
+
+max_wal_senders = {{ cluster.members|length + 1 }}
+max_replication_slots = {{ cluster.members|length + 1 }}
+
+{%- if cluster.synchronous %}
+synchronous_standby_names = '*'
+{%- endif %}
+{%- endif %}
+
 # Set these on the master and on any standby that will send replication data.
 
 #max_wal_senders = 0          # max number of walsender processes
diff --git a/postgresql/files/pg_hba.conf b/postgresql/files/pg_hba.conf
index 11c0c1d..a1f1eb8 100644
--- a/postgresql/files/pg_hba.conf
+++ b/postgresql/files/pg_hba.conf
@@ -1,4 +1,4 @@
-{%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import server, cluster with context -%}
 # PostgreSQL Client Authentication Configuration File
 # ===================================================
 #
@@ -98,6 +98,12 @@
 {%- endif %}
 {%- endfor %}
 
+{%- for client in cluster.get("members", []) %}
+{%- if client.host != '127.0.0.1' %}
+host    replication             all             {% if "/" in client.host %}{{ client.host }}{% else %}{{ client.host }}/32{% endif %}          md5
+{%- endif %}
+{%- endfor %}
+
 # DO NOT DISABLE!
 # If you change this first entry you will need to make sure that the
 # database superuser can access the database using some other method.
@@ -122,4 +128,4 @@
 #host    replication     postgres        127.0.0.1/32            md5
 #host    replication     postgres        ::1/128                 md5
 
-{%- endif %}
\ No newline at end of file
+{%- endif %}
diff --git a/postgresql/files/recovery.conf b/postgresql/files/recovery.conf
new file mode 100644
index 0000000..5ad8751
--- /dev/null
+++ b/postgresql/files/recovery.conf
@@ -0,0 +1,162 @@
+{%- from "postgresql/map.jinja" import cluster with context -%}
+# -------------------------------
+# PostgreSQL recovery config file
+# -------------------------------
+#
+# Edit this file to provide the parameters that PostgreSQL needs to
+# perform an archive recovery of a database, or to act as a replication
+# standby.
+#
+# If "recovery.conf" is present in the PostgreSQL data directory, it is
+# read on postmaster startup.  After successful recovery, it is renamed
+# to "recovery.done" to ensure that we do not accidentally re-enter
+# archive recovery or standby mode.
+#
+# This file consists of lines of the form:
+#
+#   name = value
+#
+# Comments are introduced with '#'.
+#
+# The complete list of option names and allowed values can be found
+# in the PostgreSQL documentation.
+#
+#---------------------------------------------------------------------------
+# ARCHIVE RECOVERY PARAMETERS
+#---------------------------------------------------------------------------
+#
+# restore_command
+#
+# specifies the shell command that is executed to copy log files
+# back from archival storage.  The command string may contain %f,
+# which is replaced by the name of the desired log file, and %p,
+# which is replaced by the absolute path to copy the log file to.
+#
+# This parameter is *required* for an archive recovery, but optional
+# for streaming replication.
+#
+# It is important that the command return nonzero exit status on failure.
+# The command *will* be asked for log files that are not present in the
+# archive; it must return nonzero when so asked.
+#
+# NOTE that the basename of %p will be different from %f; do not
+# expect them to be interchangeable.
+#
+#restore_command = ''       # e.g. 'cp /mnt/server/archivedir/%f %p'
+#
+#
+# archive_cleanup_command
+#
+# specifies an optional shell command to execute at every restartpoint.
+# This can be useful for cleaning up the archive of a standby server.
+#
+#archive_cleanup_command = ''
+#
+# recovery_end_command
+#
+# specifies an optional shell command to execute at completion of recovery.
+# This can be useful for cleaning up after the restore_command.
+#
+#recovery_end_command = ''
+#
+#---------------------------------------------------------------------------
+# RECOVERY TARGET PARAMETERS
+#---------------------------------------------------------------------------
+#
+# By default, recovery will rollforward to the end of the WAL log.
+# If you want to stop rollforward at a specific point, you
+# must set a recovery target.
+#
+# You may set a recovery target either by transactionId, by name,
+# or by timestamp. Recovery may either include or exclude the
+# transaction(s) with the recovery target value (ie, stop either
+# just after or just before the given target, respectively).
+#
+#
+#recovery_target_name = ''  # e.g. 'daily backup 2011-01-26'
+#
+#recovery_target_time = ''  # e.g. '2004-07-14 22:39:00 EST'
+#
+#recovery_target_xid = ''
+#
+#recovery_target_inclusive = true
+#
+#
+# Alternatively, you can request stopping as soon as a consistent state
+# is reached, by uncommenting this option.
+#
+#recovery_target = 'immediate'
+#
+#
+# If you want to recover into a timeline other than the "main line" shown in
+# pg_control, specify the timeline number here, or write 'latest' to get
+# the latest branch for which there's a history file.
+#
+#recovery_target_timeline = 'latest'
+#
+#
+# If recovery_target_action = 'pause', recovery will pause when the
+# recovery target is reached. The pause state will continue until
+# pg_xlog_replay_resume() is called. This setting has no effect if
+# no recovery target is set. If hot_standby is not enabled then the
+# server will shutdown instead, though you may request this in
+# any case by specifying 'shutdown'.
+#
+#recovery_target_action = 'pause'
+#
+#---------------------------------------------------------------------------
+# STANDBY SERVER PARAMETERS
+#---------------------------------------------------------------------------
+#
+# standby_mode
+#
+# When standby_mode is enabled, the PostgreSQL server will work as a
+# standby. It will continuously wait for the additional XLOG records, using
+# restore_command and/or primary_conninfo.
+#
+#standby_mode = off
+#
+# primary_conninfo
+#
+# If set, the PostgreSQL server will try to connect to the primary using this
+# connection string and receive XLOG records continuously.
+#
+#primary_conninfo = ''      # e.g. 'host=localhost port=5432'
+
+{%- if cluster.enabled and cluster.master is defined %}
+primary_conninfo = 'host={{ cluster.master.host }} port={{ cluster.master.get("port", 5432) }} user={{ cluster.master.user }} password={{ cluster.master.password }}'
+standby_mode = on
+{%- endif %}
+
+#
+# If set, the PostgreSQL server will use the specified replication slot when
+# connecting to the primary via streaming replication to control resource
+# removal on the upstream node. This setting has no effect if primary_conninfo
+# is not set.
+#
+#primary_slot_name = ''
+#
+# By default, a standby server keeps restoring XLOG records from the
+# primary indefinitely. If you want to stop the standby mode, finish recovery
+# and open the system in read/write mode, specify a path to a trigger file.
+# The server will poll the trigger file path periodically and start as a
+# primary server when it's found.
+#
+trigger_file = '{{ cluster.dir.data }}/trigger'
+#
+# By default, a standby server restores XLOG records from the primary as
+# soon as possible. If you want to explicitly delay the replay of committed
+# transactions from the master, specify a minimum apply delay. For example,
+# if you set this parameter to 5min, the standby will replay each transaction
+# commit only when the system time on the standby is at least five minutes
+# past the commit time reported by the master.
+#
+#recovery_min_apply_delay = 0
+#
+#---------------------------------------------------------------------------
+# HOT STANDBY PARAMETERS
+#---------------------------------------------------------------------------
+#
+# Hot Standby related parameters are listed in postgresql.conf
+#
+#---------------------------------------------------------------------------
diff --git a/postgresql/init.sls b/postgresql/init.sls
index ce83b89..0224dfa 100644
--- a/postgresql/init.sls
+++ b/postgresql/init.sls
@@ -3,3 +3,6 @@
 {% if pillar.postgresql.server is defined %}
 - postgresql.server
 {% endif %}
+{% if pillar.postgresql.cluster is defined %}
+- postgresql.cluster
+{% endif %}
diff --git a/postgresql/map.jinja b/postgresql/map.jinja
index 649aeee..12c33e7 100644
--- a/postgresql/map.jinja
+++ b/postgresql/map.jinja
@@ -12,11 +12,13 @@
 {%- set server = salt['grains.filter_by']({
     'Debian': {
         'pkgs': ['postgresql-'+version, 'postgresql-contrib-'+version, 'postgresql-doc-'+version],
+        'bdr_pkgs': ['sudo', 'postgresql-bdr-'+version+'-bdr-plugin', 'postgresql-bdr-'+version, 'postgresql-bdr-client-'+version, 'postgresql-bdr-contrib-'+version],
         'service': 'postgresql',
         'version': version,
         'init_command': 'pg_createcluster '+version+' main --start',
         'dir': {
-          'config': '/etc/postgresql/'+version+'/main'
+          'config': '/etc/postgresql/'+version+'/main',
+          'data': '/var/lib/postgresql/'+version+'/main'
         },
         'gis': False,
     },
@@ -30,4 +32,20 @@
         },
         'gis': False,
     },
-}, merge=salt['pillar.get']('postgresql:server')) %}
\ No newline at end of file
+}, merge=salt['pillar.get']('postgresql:server')) %}
+
+{%- set cluster = salt['grains.filter_by']({
+    'Debian': {
+        'pkgs': [],
+        'service': 'postgresql',
+        'version': version,
+        'init_command': 'pg_createcluster '+version+' main --start',
+        'dir': {
+          'config': '/etc/postgresql/'+version+'/main',
+          'data': '/var/lib/postgresql/'+version+'/main'
+        },
+        'archive': "off",
+        'synchronous': False,
+        'wal_level': 'hot_standby'
+    }
+}, merge=salt['pillar.get']('postgresql:cluster')) %}
diff --git a/postgresql/meta/salt.yml b/postgresql/meta/salt.yml
new file mode 100644
index 0000000..959542c
--- /dev/null
+++ b/postgresql/meta/salt.yml
@@ -0,0 +1,6 @@
+orchestrate:
+  cluster.master:
+    priority: 140
+  cluster.slave:
+    priority: 150
+
diff --git a/postgresql/server.sls b/postgresql/server.sls
index 1d0f7e5..497e2f2 100644
--- a/postgresql/server.sls
+++ b/postgresql/server.sls
@@ -1,17 +1,22 @@
 {%- from "postgresql/map.jinja" import server with context %}
+{%- from "postgresql/map.jinja" import cluster with context %}
 {%- if server.enabled %}
 
 postgresql_packages:
   pkg.installed:
+  {% if cluster.get("enabled", False) and cluster.get("mode") == "bdr" %}
+  - names: {{ server.bdr_pkgs }}
+  {% else %}
   - names: {{ server.pkgs }}
+  {% endif %}
 
 {%- if grains.os_family == "Debian" %}
 
 init_postgresql_cluster:
-  cmd.run:
-  - name: {{ server.init_command }}
-  - unless: "[ -f {{ server.dir.config }}/postgresql.conf ]"
-  - cwd: /root
+  postgres_cluster.present:
+  - name: main
+  - version: "{{ server.version }}"
+  - datadir: "{{ server.dir.data }}"
   - require:
     - pkg: postgresql_packages
   - require_in:
@@ -87,28 +92,38 @@
     - postgres_user: postgresql_user_{{ database_name }}_{{ user.name }}
     {%- endfor %}
 
-{%- if database.extension is defined %}
+{%- for extension_name, extension in database.get('extension', {}).iteritems() %}
 
-postgresql_extensions_packages:
+{%- if extension.enabled %}
+
+{%- if extension.get('pkgs', []) %}
+
+postgresql_{{ extension_name }}_extension_packages:
   pkg.installed:
-  - names:
-    - postgresql-{{ server.version }}-postgis-2.1
-  - skip_suggestions: True
-  - skip_verify: True
+  - names: {{ pkgs }}
 
 {%- endif %}
 
-{%- for extension_name, extension in database.get('extension', {}).iteritems() %}
-
-database_{{ database_name }}_{{ extension_name }}_extension:
+database_{{ database_name }}_{{ extension_name }}_extension_present:
   postgres_extension.present:
   - name: {{ extension_name }}
   - maintenance_db: {{ database_name }}
   - user: postgres
-  - template: template0
   - require:
     - postgres_database: postgresql_database_{{ database_name }}
 
+{%- else %}
+
+database_{{ database_name }}_{{ extension_name }}_extension_absent:
+  postgres_extension.present:
+  - name: {{ extension_name }}
+  - maintenance_db: {{ database_name }}
+  - user: postgres
+  - require:
+    - postgres_database: postgresql_database_{{ database_name }}
+
+{%- endif %}
+
 {%- endfor %}
 
 {%- if database.initial_data is defined %}
