Choosing a Postgres distribution
================================

EDB Postgres Distributed can be deployed with three different Postgres
distributions: PostgreSQL, EDB Postgres Extended Server, or EDB Postgres
Advanced Server. The availability of particular EDB Postgres Distributed
features depends on the Postgres distribution being used. Therefore,
it’s essential to adopt the Postgres distribution best suited to your
business needs. For example, if having the Commit At Most Once (CAMO)
feature is mission critical to your use case, don’t adopt open source
PostgreSQL, which doesn’t have the core capabilities required to handle
CAMO.

The following table lists features of EDB Postgres Distributed that are
dependent on the Postgres distribution and version.

.. csv-table::
  :header: Feature,PostgreSQL,EDB Postgres Extended,EDB Postgres Advanced
  :widths: 15,12,12,12
  :align: left
  :class: longtable

  :ref:`pg_upgrade <pgd node upgrade>` ,Y,Y,Y
  :ref:`pg_upgrade <Conflicts>` ,Y,Y,Y
  :ref:`DML and DDL replication and nonreplication<DML and DDL replication and nonreplication>` ,Y,Y,Y
  :ref:`pg_upgrade <DDL locking details>` ,Y,Y,Y
  :ref:`pg_upgrade <Transaction streaming>` ,Y,Y,Y
  :ref:`pg_upgrade <Sequences>` ,Y,Y,Y
  :ref:`Subscriber-only nodes<Subscriber-only nodes>` ,Y,Y,Y
  :ref:`Monitoring the Connection Manager<Monitoring the Connection Manager>` ,Y,Y,Y
  :ref:`Parallel Apply<Parallel Apply>` ,Y,Y,Y
   `Conflict-free replicated data types (CRDTs) <https://www.enterprisedb.com/docs/pgd/latest/conflict-management/crdt/>`__ ,Y,Y,Y
  :ref:`Special problems for column-level conflict resolution<Special problems for column-level conflict resolution>` ,Y,Y,Y
  :ref:`Transform triggers<Transform triggers>` ,Y,Y,Y
  :ref:`Conflict triggers<Conflict triggers>` ,Y,Y,Y
  :ref:`Asynchronous replication<Asynchronous replication>` ,Y,Y,Y
  :ref:`Legacy synchronous replication using PGD<Legacy synchronous replication using PGD>` ,Y,Y,Y
  :ref:`Group Commit (legacy)<Group Commit (legacy)>` ,N,Y,Y
  :ref:`pg_upgrade <Commit At Most Once>` ,N,Y,Y
  :ref:`Eager conflict resolution<Eager conflict resolution>` ,N,Y,Y
  :ref:`Lag Control<Lag Control>` ,N,Y,Y
  :ref:`Decoding worker<Decoding worker>` ,N,Y,Y
  :ref:`pg_upgrade <Monitoring the Connection Manager>` ,N,Y,Y
  :ref:`pg_upgrade <Conflicts>` ,N,Y,Y
  :ref:`pg_upgrade <Types of Conflict>` ,N,Y,Y
  :ref:`pg_upgrade <Conflict detection>` ,N,Y,Y
  :ref:`Support for Transparent Data Encryption (TDE)<Support for Transparent Data Encryption (TDE)>` ,N,15+,15+
