Bidirectional replication (Postgres-BDR) is a project that's used to allow multi-master replication with PostgreSQL. There is a range of possible architectures. The first use case we support is all-nodes-to-all-nodes. Postgres-BDR will eventually support a range of complex architectures, which is discussed later.
Postgres-BDR aims for eventual inclusion within core PostgreSQL, though knowing that is a long and rigorous process. It also aims to provide working software solutions.
Postgres-BDR aims to allow the nodes of the cluster to be distributed physically, allowing worldwide access to data and allowing for disaster recovery. Each Postgres-BDR master node runs individual transactions; there is no globally distributed transaction manager. Postgres-BDR includes replication of data changes and data definition language (DDL) changes. New...